Funciones de iteración en lenguaje DAX: un ejemplo detallado

Para esta publicación de blog, quiero sumergirme en las funciones de iteración dentro del lenguaje DAX en LuckyTemplates. La razón por la que quiero pasar un tiempo mostrando lo que puede hacer dentro de las funciones de iteración es porque es un concepto tan importante que necesita aprender muy bien. Puede ver el video completo de este tutorial en la parte inferior de este blog.

Es posible que solo haya completado algunas SUMAS simples o que haya usado potencialmente la función PROMEDIO, pero también es importante comprender cómo usar las funciones de iteración que tienen una X al final , como: SUMX, AVERAGEX o COUNTX.

La razón es que puede avanzar mucho más dentro de una función de iteración que con una función de agregación.

Tabla de contenido

¿Qué es una función de iteración?

Si aún no está familiarizado con lo que es una función de iteración, es una función en el lenguaje de fórmulas DAX que generalmente tiene una X al final. También tiene funciones de tabla que iteran a través de una tabla como FILTRO o VALORES, pero en este caso nos ocuparemos únicamente de SUMX.

Si observa nuestra fórmula para Ventas totales, puede que esta sea una función iterativa debido al SUMX. Iterar significa iterar a través de cada fila y hacer un cálculo. En este caso, para cada fila de la tabla Ventas, estamos multiplicando la cantidad por el precio actual. También vamos a volver a la tabla Producto usando la función RELACIONADO para obtener el precio actual.

Funciones de iteración en lenguaje DAX: un ejemplo detallado

Quiero mostrarle cómo puede escribir funciones de iteración realmente complejas que extraen una gran perspectiva que quizás desee obtener en sus datos. Para este tutorial, quiero calcular cuántas ventas hacemos por encima de un precio determinado. En este caso, vamos a seleccionar $2,000.

También quiero saber cuáles son nuestras ventas mensuales de productos que superan los $2000, pero donde alguien compra más de un producto. También queremos ver qué tan bien se compara con nuestras Ventas totales. Este es el tipo de complejidad que se puede lograr escribiendo solo una fórmula y usando una función de iteración.

Precio de venta superior a $ 2000

Vamos a crear una medida y llamarla Precio de venta > $2000 y Cantidad > 1 . En general, tendría que escribir algunas columnas diferentes o algunas medidas diferentes para ver la respuesta aquí, pero le mostraré cómo puede hacerlo con solo una. Voy a comenzar con SUMX y aquí dice que necesitamos ingresar una tabla, ¿no?

Funciones de iteración en lenguaje DAX: un ejemplo detallado

Así que vamos a abordar este desafío de Cantidad > 1 creando una tabla que no es toda la tabla de Ventas, sino una tabla que ya ha filtrado todo lo que solo se vio una vez. Usaremos FILTRO aquí ya que es una función de tabla, por lo que puede colocar cualquier tipo de tabla dentro. Luego iremos con Ventas e iteramos a través de cada fila en la tabla Ventas dentro de esta función FILTRO y filtraremos cada fila con una cantidad mayor que uno.

Funciones de iteración en lenguaje DAX: un ejemplo detallado

Por cada venta superior a 1, también quiero crear una lógica adicional. Voy a escribir un patrón de expresión y usar SWITCH aquí. Vamos a decir que si la venta tiene un precio actual mayor o igual a $2000, entonces quiero calcular las Ventas Totales. Si no es así, entonces no quiero calcularlo en absoluto. Por último, pondré 0 como resultado alternativo.

Funciones de iteración en lenguaje DAX: un ejemplo detallado

Así es como se escriben algunas fórmulas de iteración bastante complejas en el lenguaje DAX. La parte clave es simplemente comprender qué tipo de tablas puede colocar allí y saber qué está haciendo la iteración real .

En este caso, para cada fila en esta tabla de filtrado hacia abajo, estoy evaluando cuál es el precio actual que es mayor a $2000. Si es así, contamos las ventas de esa fila y si no es así, entonces es solo 0.

Una vez que arrastre esta medida a la tabla, verá que los resultados son similares a los que logramos en el primer gráfico; la única diferencia es que esto es a diario.

Funciones de iteración en lenguaje DAX: un ejemplo detallado

Precio de venta superior a $500

Podemos crear información adicional aquí reutilizando el mismo patrón. Si quisiéramos ver lo que estaba por encima de $ 500, todo lo que tenemos que hacer es hacer algunos pequeños cambios aquí, presionar Intro y luego arrastrar esto también a la tabla.

Funciones de iteración en lenguaje DAX: un ejemplo detallado

Obviamente, podemos ver una gran diferencia porque hay más productos que estamos contando. Esto se debe a que no nos estamos deshaciendo de tantos productos de precio más alto o más bajo como antes con los $2000.

Funciones de iteración en lenguaje DAX: un ejemplo detallado

Visualización de los datos 

También podemos convertir esto en una visualización , sin embargo, como puede ver, el gráfico se ve un poco ocupado, por lo que probablemente sea mejor permanecer en la tabla, o podemos hacer que el período de tiempo sea más condensado como el gráfico de la izquierda.

Funciones de iteración en lenguaje DAX: un ejemplo detallado

Con suerte, podrá evaluar y comprender hasta dónde puede llegar con estas funciones de iteración dentro del lenguaje DAX. Puede comenzar a sumergirse realmente en cualquier aspecto de sus datos o extraer información muy específica. La forma de hacerlo es mediante el uso de este contexto de fila, que le permite acceder realmente a estas funciones de iteración. Puede mirar una fila individual, ponerla dentro o fuera de su cálculo y usar las funciones de iteración como SUMX, AVERAGEX y COUNTX.

Las funciones de iteración le brindan mucha más flexibilidad en términos de los cálculos que puede hacer a nivel de fila en comparación con las agregaciones que solo le permiten agregar una columna completa. Ahora, dentro de las funciones de iteración, primero debe ingresar una referencia de tabla y luego una expresión, pero ciertamente expanda su mente en términos de lo que cualquiera de estos puede ser realmente.

Dentro de las funciones de iteración, puede colocar dentro de cualquier tabla o cualquier derivado de una tabla... también cualquier tabla virtual o referencia a la tabla. Eso permite mucha más flexibilidad de la que normalmente tendría si solo usara una tabla completa como su tabla de transacciones para ejecutar algo de lógica.

La expresión (o medida) que ingrese también puede ser muy avanzada. Puede usar la lógica IF avanzada o la lógica SWITCH, o básicamente cualquier cosa que pueda hacer a nivel de fila dentro de una columna calculada. De hecho, puede ponerlo en esa expresión como parte de una función de iteración.

Conclusión

La conclusión clave de esta publicación es que las funciones de iteración son increíblemente importantes para comprender y aprender bien dentro de LuckyTemplates.

Si aprende esto bien, entonces las oportunidades de ejecutar cálculos internos en la memoria a través de medidas se vuelven realmente poderosas.

Consulte la si recién está comenzando con el lenguaje DAX y LuckyTemplates. Mucho que aprender en este curso gratuito. Puede encontrar esto en .

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.