En DAX, dos funciones parecen hacer lo mismo pero esconden una diferencia fundamental: SUM y SUMX. Elegir la equivocada da totales erróneos — y lo peor es que muchas veces el error pasa desapercibido. Entender cuándo usar cada una es un hito en el dominio de DAX.
SUM: sumar una columna
SUM suma los valores de una única columna que ya existe. SUM(Ventas[Valor]) devuelve el total de la columna Valor. Simple y directo — cuando el número que quieres ya está en una columna, este es el que usas.

SUMX: calcular fila a fila y luego sumar
SUMX es un "iterador": recorre la tabla fila a fila, calcula una expresión en cada una, y solo después suma todo. SUMX(Ventas, Ventas[Cantidad] * Ventas[Precio]) multiplica cantidad por precio en cada fila y suma los resultados.
La diferencia que cambia el resultado
El error clásico es hacer SUM(Cantidad) * SUM(Precio) para obtener la receta total. Eso multiplica dos totales y da un número completamente erróneo. Lo correcto es SUMX: multiplicar fila a fila y solo después sumar. El orden de las operaciones lo es todo.
Cuándo usar cada uno
- SUM: cuando el valor que quieres ya existe en una columna lista para sumar.
- SUMX: cuando necesitas calcular algo por fila (multiplicar, condicionar) antes de sumar.
El patrón vale para toda la familia X
DAX tiene AVERAGEX, MAXX, MINX, COUNTX — todos iteradores con la misma lógica: calculan fila a fila y luego agregan. Entender SUMX es entender toda la familia, una de las ideas más importantes de DAX.
En la práctica
Siempre que necesites un cálculo que involucre más de una columna por fila, piensa en SUMX, no en SUM de columnas separadas. Este cuidado evita totales erróneos que nadie detecta hasta que es tarde. ¿Tus cálculos de ingresos multiplican fila a fila, o suman columnas separadas?