¿Qué son las funciones de iteración y cómo afectan los cálculos?
Las funciones de iteración en Power BI son herramientas poderosas que nos permiten generar contextos a nivel de fila, lo cual es crucial cuando buscamos realizar cálculos y métricas más complejas. Por ejemplo, trabajar con la tabla FotoVehículo, y las variables Modelo, Precio, y Stock, nos solicita calcular la posible venta. Aplicar una simple suma de Precio por la columna Stock no ofrece el gran total correcto. Aquí es donde entran las funciones de iteración.
¿Cómo usamos las columnas calculadas?
Inicialmente, se podría intentar resolver el cálculo mediante una columna calculada. Esto se realiza haciendo clic derecho en la tabla, seleccionando nueva columna y creando una expresión que itere fila a fila, esto es:
PosibleVenta2 = [Precio] * [Stock]
Esta expresión proporciona el posible valor de venta correcto en cada fila, pero las columnas calculadas tienen sus limitaciones en rendimiento y eficiencia.
¿Qué beneficios ofrecen las funciones X?
Las funciones X, como SUMX, permiten iterar fila a fila eficientemente, haciendo posible generar cálculos detallados y exactos sin las restricciones de una columna calculada. Con SUMX, podemos sumar fila por fila en la tabla Fotovehículos el campo Stock por Precio. Esto asegura que, al llevar la medida a la tabla report, el resultado refleje con precisión los totales deseados.
¿Cómo se aplica a otras tablas y cálculo de medidas?
¿Cómo usamos las iteraciones X en la tabla FAC Ventas?
Veamos esto en acción en otra tabla, como la FAC Ventas. Al crear una tabla visualizando el ID de la transacción y los diferentes valores de precio con y sin IGB (impuesto), logramos obtener el precio de venta real al sumar iterativamente:
Aquí, SUMX permite obtener el precio con impuestos, calculando fila por fila y ayudando a reflejar cálculos precisos y correctos en la visualización.
¿Existen otras funciones de iteración?
Además de SUMX, también se emplean funciones como RANKX y AVERAGEX. RANKX permite realizar un ranking eficiente dentro de nuestros datos, mientras que AVERAGEX calcula promedios fila por fila, ampliando las capacidades analíticas y permitiendo generar valoraciones precisas.
Recomendaciones para usar funciones X
Optimización: Elija funciones X en vez de columnas calculadas para mantener un alto rendimiento en el modelado.
Precisión: Garantice cálculos correctos en totales y subtotales usando funciones iterativas.
Aplicaciones avanzadas: Integre estas funciones con otros cálculos DAX para obtener métricas sofisticadas.
Siguiendo estos consejos, y comprendiendo el poder de las iteraciones fila a fila, puede mejorar considerablemente la precisión y eficiencia de los informes en Power BI. ¡Atrévete a experimentar con funciones X y explora su potencial!
En la tabla que se importa como Fotos_vehículos, está la columna stock.
Los iteradores en DAX son funciones que permiten realizar cálculos fila a fila en una tabla. Esto es esencial para crear métricas complejas, ya que facilitan la evaluación de expresiones sobre cada fila, retornando resultados precisos. Por ejemplo, funciones como SUMX permiten sumar valores de una columna multiplicando por otra, teniendo en cuenta el contexto de cada fila. Esto optimiza la generación de reportes en Power BI al ofrecer resultados más exactos y relevantes para el análisis de datos.
Funciones de iteración VS Columnas Calculadas:
Ambas son utiles para calcular iterativamente cada renglon de tu tabla. Cual se debe usar sobre otro dependerá de la necesidad de tu modelo.
Las columnas calculadas son almacenadas en memoria y se calcula una sola vez, por otro lado, una función de iteración es calculada cada vez que se necesita.
Si necesitas usar estos valores recurrentemente o so serán utilizados para filtros en otras medidas se debe utilizar columnas calculadas (por memoria), si solo se utiliza de vez en cuando y no debe depender su valor para filtrar algún otro cálculo se debe usar una función de iteración. Esto ayuda al performance del reporte cuando se tiene un dataset grande.
Es matemática básica pero no está mal recordarlo, así además entendemos bien cómo funciona DAX. ¿Por qué es diferente:
El valor de suma total es erróneo en el primer caso por la ausencia de la propiedad distributiva de la multiplicación sobre la suma cuando se invierte el orden de las operaciones .
En definitiva, el uso de SUMX, nos permite crear una medida, sin la necesidad de hacer una nueva columna calculada, pudiendo iterar entre las filas y manteniendo una suma total final correcta.
Precio_Venta_con_IGV=SUMX(Fact_Ventas,Fact_Ventas[PrecioVenta sin IGV]*(1+Fact_Ventas[IGV]))
Usar SUMX en lugar de SUM es fundamental cuando necesitas realizar cálculos fila a fila, ya que SUM solo puede sumar valores en una columna sin considerar el contexto de otras columnas. SUMX, por otro lado, permite iterar sobre una tabla y aplicar cálculos complejos en cada fila, lo que te da resultados más precisos, como se menciona en el transcript sobre el cálculo de ventas posibles. Esto es esencial para generar métricas más complejas y eficientes en Power BI.
Para los que no tengan stock , yo le ingrese una columna stock a la tabla Fotos vehiculos con datos inventados , y poder hacer el resto de los ejercicios del video:
Obviamente tengan presente que no les va a dar los mismo numeros que el video , pero el ejercicio practico es el mismo.
Buen aporte Carlos
Mi recomendación es que, como vimos en clases anteriores, para cuando tienes tantas alternativas, en vez de usar la funcion IF te convendría usar la funcion SWITCH
Saludos
El mismo problema, no recuerdo en que clase se creo la tabla la columna stock
No tengo el apartado STOCK en mi tabla
No tengo el apartado STOCK en mi tabla
La función SUMX en DAX es una función de iteración que permite realizar cálculos sobre una tabla, evaluando una expresión para cada fila y luego sumando los resultados. Es útil para generar métricas complejas, como en el ejemplo del cálculo de ventas, donde se multiplica el precio por el stock fila por fila. Utilizar SUMX es más eficiente que trabajar con columnas calculadas, ya que optimiza el modelo de datos y mejora los análisis.
Hice el calculo en excel con los mismos datos de Suma de Precio y Suma de Stock y al multiplicar cada valor de las filas de estas columnas me da igula a la Columna PosibleVenta a secas (es decir sin Número) me aclara esto porfa?
Hola comparto la formula que utilice para el precio real
Precio de venta Real = SUMX(Fact_Ventas,Fact_Ventas[Precio Venta sin IGV]*1.18)
Lo hice de esta manera ya que el IVA generalmente suele ser una constante.
Saludos
Mi medida sin funciones X me arroja un resultado correcto, que pasó?
Es posible que hayas utilizado una función implícita o una relación no funcional para obtener el resultado correcto sin usar una función explícita.
Al momento de calcular Posible Venta 2 me arroja el error: No se puede determinar un único valor para la columna 'Precio' en la tabla 'Fotos_Vehiculos'. Esto puede suceder cuando una fórmula de medida hace referencia a una columna que contiene muchos valores sin especificar una agregación como mínimo, máximo, recuento o suma para obtener un único resultado.
me pasa lo mismo
SUMX(Tabla, Columna1*Columna2) equivale a SUMAPRODUCTO(Columna1;Columna2) de Excel. Tiene similitudes a las funciones array de Google Sheets. Es maravilloso sobre todo cuando deseamos que los totales y subtotales sumen de la forma exacta, por su forma matricial.
Por eso cuando lo uso, lo suelo combinar con el SUMMARIZE de la tabla, así como FILTER y funciones de tratamiento de tabla, buscando disminuir el número de cálculos simultáneos y aumentar el rendimiento. De allí su utilidad para optimizar medidas que con el tiempo se pueden volver pesadas
Los iteradores X en DAX permiten realizar cálculos fila a fila en tablas, facilitando la creación de medidas más complejas. Por ejemplo, al usar SUMX, se puede calcular la posible venta multiplicando el precio por el stock de cada fila, en lugar de sumar totales previamente, lo que puede dar resultados incorrectos. Esto es fundamental para generar métricas precisas en Power BI. Aprender a aplicar estas funciones es clave para optimizar tus reportes y análisis de datos.
La funcion SUMX no me da igual que en el video, me arroja toda la columna 9.233.120 y luego lo que supongo que es la sumatoria de todo eso.. por que?
Posible venta3 = SUMX(Fotos_Vehiculos,Fotos_Vehiculos[Stock]*Fotos_Vehiculos[Precio])
Hola!
Está raro que salga así, permítenos ver la medida que utilizaste por favor, para ver si hay algún error.