Trabajar con funciones de iteración en DAX

He visto cierta confusión con las funciones de iteración en DAX cada vez que trabajo con miembros de LuckyTemplates en el foro. Así que haremos un repaso de lo que se puede lograr usando estas funciones y por qué deberías usarlas. Puede ver el video completo de este tutorial en la parte inferior de este blog.

A medida que se familiarice más con las fórmulas DAX , utilizará estas funciones de iteración mucho más de lo que piensa. Son mucho más versátiles que las funciones de agregación simples como SUMA o PROMEDIO .

Tengo algunos ejemplos aquí, y quiero trabajar con la lógica en cada uno de estos ejemplos para que pueda obtener una muy buena comprensión de lo que realmente sucede cuando la lógica se ejecuta a través de estas fórmulas.

La clave de las funciones de iteración es que iteran a través de algo.

Tabla de contenido

Iteración simple usando SUMX

Trabajar con funciones de iteración en DAX

En este caso, quiero resumir algo pero quiero iterar a través de cada fila en esta tabla de Ventas.

Trabajar con funciones de iteración en DAX

Y luego, en cada fila, quiero ejecutar esta lógica específica aquí.

Trabajar con funciones de iteración en DAX

Pasemos rápidamente a nuestra tabla de ventas muy simple, donde quiero ejecutar algo de lógica en cada fila. Y luego quiero multiplicar Cantidad por Precio.

Trabajar con funciones de iteración en DAX

El precio no existe en esta tabla. Y para este modelo en particular, en realidad está en la tabla Producto.

Trabajar con funciones de iteración en DAX

Lo siguiente que debo hacer es volver a mi tabla Product y puedo hacerlo con RELATED . Cuando estamos calculando la cantidad por el precio relevante, hacemos esto para cada fila. Esto es exactamente lo que está sucediendo dentro de esta fórmula.

Estos son los conceptos clave para recordar cuando comenzamos a hacer cosas más avanzadas.

Un enfoque alternativo para obtener ventas usando SUMX

Trabajar con funciones de iteración en DAX

En este ejemplo, tengo SUMX iterando a través de la tabla Ventas nuevamente. Así que ejecutamos esa lógica en cada fila y calculamos la cantidad por el precio en cada fila y luego la agregamos una vez que se realiza toda la iteración.

Trabajar con funciones de iteración en DAX

Verá aquí que este resultado es exactamente el mismo que los resultados en el primer ejemplo (SUMX Tutorial 2) o las Ventas Totales.

Puede colocar una gran variedad de cosas diferentes aquí: puede ser una medida y puede ramificarse con una función de iteración. No tiene que hacer referencia a columnas específicas para obtener los cálculos correctamente.

Trabajar con funciones de iteración en DAX

Como puede ver aquí, todo lo que he hecho es colocar una medida (Ventas totales) aquí y obtengo exactamente el mismo resultado.

SUMX y funciones lógicas

Trabajar con funciones de iteración en DAX

Estoy usando SUMX aquí, pero también es relevante para AVERAGEX , MINX y MAXX . Son todas cosas muy parecidas.

Otra cosa clave para recordar con estas funciones de iteración es que ejecutan la lógica en cada fila y guarda el resultado en la memoria.

Una vez que todos esos valores se guardan en la memoria, se realiza el cálculo general, como una SUMA o un PROMEDIO .

Trabajar con funciones de iteración en DAX

Volviendo a nuestro ejemplo, puede ver aquí que la cantidad en esta columna es ligeramente menor que las columnas anteriores.

Trabajar con funciones de iteración en DAX

Con la función de iteración SUMX , quiero recorrer cada fila de la tabla Ventas. Y en cada fila, quiero calcular si esa venta en particular es mayor a $2,000. Si es así, quiero calcular las Ventas totales para esa fila. Pero si el total de la venta fue menos de $2000, entonces quiero devolver cero. Entonces solo quiero calcular las ventas de mayor valor.

Algunas personas sugerirán que simplemente podría poner la lógica dentro de una columna calculada. Pero no queremos hacer eso porque hay una manera mucho mejor de ejecutar esta lógica dentro de DAX en lugar de ponerla físicamente dentro de una columna.

Iterando a través de tablas

Aquí es donde las funciones de iteración son realmente asombrosas. No solo puede iterar a través de una tabla física como lo hicimos antes, sino que también puede iterar a través de alguna otra tabla virtual que ingrese como parámetro.

Trabajar con funciones de iteración en DAX

Vamos a pensar que cada resultado aquí tiene un contexto específico. En este caso particular, tenemos el contexto del cliente.

Trabajar con funciones de iteración en DAX

En este contexto, quiero iterar a través de cada ubicación y quiero ver si un cliente en particular ha alcanzado ventas por encima de $5,000.

Si es así, quiero calcular las ventas totales. Pero si no es así, quiero que devuelva cero.

Trabajar con funciones de iteración en DAX

Entonces, en este caso particular, estoy calculando las ubicaciones de alto valor en las que este cliente está comprando y las ventas totales que están realizando en esas ubicaciones.

Trabajar con funciones de iteración en DAX

Lo que VALUES está haciendo aquí es crear una tabla virtual. Entonces SUMX ni siquiera está trabajando en nada físico aquí. En realidad, está trabajando sobre algo que es totalmente virtual.

Iteración simple usando MINX

Trabajar con funciones de iteración en DAX

Esto es similar a los ejemplos anteriores, pero en lugar de SUMX , vamos a ejecutar algún otro tipo de agregación una vez que iteramos a través de cada fila.

Trabajar con funciones de iteración en DAX

En este caso particular, estamos escribiendo a través de cada ubicación para cada cliente y calculando las ventas totales para cada una de esas ubicaciones.

Trabajar con funciones de iteración en DAX

Entonces queremos devolver la cantidad mínima de la ubicación donde compraron.

Iteración simple usando MAXX

Trabajar con funciones de iteración en DAX

También estoy haciendo algo similar aquí solo para mostrarte la versatilidad de iterar funciones. Estoy revisando cada ubicación para ver sus ventas pero luego devolviendo el máximo de esas ventas de ubicación, razón por la cual estamos viendo números más altos aquí.

Conclusión

El tema clave que quería tocar en este artículo es el rango de opciones que tiene dentro de una función de iteración frente a una simple suma o un promedio.

Una vez que comience a profundizar en cálculos más complejos, verá cuán esenciales son estas funciones particulares para devolver valores a nivel de contexto.

Hay tanta versatilidad y tantas formas en que puede ejecutar estos cálculos usando una fórmula simple si solo sabe cómo manipular los parámetros.

Si disfrutó aprendiendo sobre estas funciones de iteración , puede navegar a través de estos enlaces para obtener más información sobre este tema:

Conceptos clave para iterar funciones en LuckyTemplates

Iteración de la lógica a través de tablas virtuales: conceptos avanzados de DAX en LuckyTemplates

Disfruta trabajando en este.

Leave a Comment

Time Intelligence en LuckyTemplates: cómo calcular el número de transacciones realizadas en los últimos N días

Time Intelligence en LuckyTemplates: cómo calcular el número de transacciones realizadas en los últimos N días

Descubra cómo calcular el total de transacciones realizadas en los últimos N días y obtenga información útil utilizando la inteligencia de tiempo en LuckyTemplates.

Cómo evaluar clústeres en sus datos mediante la técnica DAX en LuckyTemplates

Cómo evaluar clústeres en sus datos mediante la técnica DAX en LuckyTemplates

En este tutorial, demuestro cómo mostrar clústeres en sus datos permite extraer información valiosa usando técnicas DAX avanzadas.

¿Cuánto personal tenemos actualmente? Lógica de fechas múltiples en LuckyTemplates usando DAX

¿Cuánto personal tenemos actualmente? Lógica de fechas múltiples en LuckyTemplates usando DAX

En este tutorial, aprenderá a calcular la <strong>población actual del personal</strong> para las relaciones múltiples de la tabla de calendario mediante la función COUNTROWS y FILTER en LuckyTemplates.

Hacer una solicitud HTTP en Power Automate

Hacer una solicitud HTTP en Power Automate

Aprenda a crear una solicitud HTTP con Power Automate y cómo implementar soluciones efectivas para la automatización de tareas.

Programe un flujo de escritorio para que se ejecute en Power Automate

Programe un flujo de escritorio para que se ejecute en Power Automate

En este tutorial, aprenda cómo programar un flujo de escritorio en Power Automate para automatizar tareas en la web y su escritorio.

Power Automate Terminar Control de acción en flujos

Power Automate Terminar Control de acción en flujos

Aprenda a usar correctamente el control Terminar acción de Power Automate que termina las acciones en un flujo si no se cumple alguna de las condiciones.

Power Query: combinar archivos de varias carpetas

Power Query: combinar archivos de varias carpetas

Aprenda a combinar archivos de varias carpetas en su red, escritorio, OneDrive o SharePoint utilizando Power Query.

Tipos de flujo de Power Automate y cuándo usarlos

Tipos de flujo de Power Automate y cuándo usarlos

En este blog, analizamos las similitudes y diferencias entre los tipos de flujo de Power Automate y determinamos cuándo usar cada flujo. Encuentra la mejor opción de automatización.

Conectores de Power Automate: número, texto y fecha y hora

Conectores de Power Automate: número, texto y fecha y hora

Familiarízate con algunos conectores Power Automate integrados que transforman cadenas en otro formato: número, texto y fecha y hora.

Tutorial del analizador VertiPaq: relaciones e integridad referencial

Tutorial del analizador VertiPaq: relaciones e integridad referencial

Este tutorial detallado sobre el analizador VertiPaq en DAX Studio le enseñará cómo usar la pestaña Relaciones para optimizar su DAX y resolver problemas de integridad referencial.