Curso de DAX para Power BI

SUMX: cálculos fila a fila en DAX

Curso de DAX para Power BI

Contenido del curso

SUMX: cálculos fila a fila en DAX

Resumen

Las funciones de iteración en DAX, conocidas como funciones X, te permiten calcular métricas fila a fila dentro de una tabla, evitando errores comunes que aparecen cuando usas agregaciones simples como SUM. Si trabajas con Power BI y necesitas resultados precisos en cálculos como ventas posibles o precios con impuestos, dominar estas funciones cambia la forma en que modelas datos.

¿Por qué SUM no siempre da el resultado correcto?

Cuando intentas multiplicar dos columnas con SUM, el motor calcula primero la suma total de cada columna y luego las multiplica entre sí. Eso rompe la lógica del cálculo.

Imagina que tienes una tabla con modelo, precio y stock, y necesitas saber la posible venta. Si defines la medida como SUM(precio) * SUM(stock), el gran total que aparece en la tabla no coincide con la realidad del negocio. El problema está en que multiplicas totales, no filas individuales.

¿Qué es un contexto de fila en DAX? Es un cálculo que se ejecuta línea por línea sobre una tabla, evaluando cada registro de forma independiente antes de sumarlo al resultado final.

¿Cuándo conviene usar una columna calculada?

Una salida posible es crear una columna calculada con precio * stock y luego sumarla. El resultado llega correcto, por ejemplo 9.233.120 en el caso del ejercicio con la tabla foto vehículo.

El detalle es que las columnas calculadas no son la opción más óptima: ocupan espacio en el modelo y se calculan al cargar los datos, no de forma dinámica. Aquí es donde entran las funciones X como alternativa más eficiente.

¿Cómo funciona SUMX para calcular ventas reales?

SUMX itera fila a fila sobre una tabla y devuelve la suma de la expresión que tú le indiques. Es la respuesta natural cuando necesitas multiplicar columnas antes de agregar.

La sintaxis del ejercicio queda así:

DAX Posible Venta 3 = SUMX(FotoVehiculos, FotoVehiculos[stock] * FotoVehiculos[precio])

Al llevar esa medida a la tabla, el resultado coincide con el de la columna calculada, pero sin sobrecargar el modelo. SUMX recorre cada fila, multiplica stock por precio, y luego suma todos esos resultados parciales.

¿Cuándo debo usar SUMX en lugar de SUM? Úsalo cuando el cálculo dependa de operaciones entre columnas en cada fila, como multiplicaciones, condicionales o fórmulas con varias variables.

¿Cómo aplicar SUMX al cálculo de precio con IGV?

Un segundo ejercicio sobre la tabla FacVentas lo deja aún más claro. Necesitas obtener el precio de venta real, es decir, el precio sin IGV más el impuesto correspondiente.

La medida queda:

DAX Precio Venta Real = SUMX(FacVentas, FacVentas[Precio Venta sin IGV] * FacVentas[IGV] + FacVentas[Precio Venta])

Gracias a la iteración fila a fila, cada transacción se calcula con su propio impuesto antes de sumarse al total. Y aquí viene lo interesante: si intentaras hacer esto con SUM tradicional, el IGV se aplicaría sobre totales agregados y distorsionaría el resultado final.

¿Qué otras funciones X existen además de SUMX?

La familia de funciones de iteración no se queda solo en sumas. Hay variantes que cubren otras necesidades analíticas comunes en Power BI:

  • SUMX: suma fila a fila el resultado de una expresión.
  • AVERAGEX: calcula el promedio fila a fila, útil cuando necesitas medias ponderadas o promedios de cálculos compuestos.
  • RANKX: genera un ranking fila a fila, ideal para ordenar productos, clientes o vendedores según una métrica.

Cada una sigue la misma lógica: recibe una tabla y una expresión, recorre cada fila, evalúa la expresión y devuelve un agregado. Esa estructura te abre la puerta a métricas mucho más sofisticadas que las que puedes lograr con funciones de agregación simple.

Si ya manejas SUM y quieres dar el siguiente paso en DAX, las funciones X son el puente hacia cálculos precisos sin inflar el modelo con columnas innecesarias. ¿Qué métrica de tu negocio te gustaría reescribir usando SUMX?