DAX: Agregación e Iteradores
Fundamentos de Cálculo Matemático y Estadístico – Decil.com
Agregadores vs Iteradores
En DAX, la forma en que sumas o promedias datos cambia drásticamente dependiendo de si usas una función de agregación simple o un iterador (funciones X). Mientras que los agregadores miran una columna completa, los iteradores entran en la tabla para realizar cálculos fila por fila antes de dar el resultado final. Comprender esta diferencia es la clave para realizar cálculos complejos como Rentabilidad, Ventas Netas o Rankings.
SUM / AVERAGE / MIN / MAX
Medida
Explicación Técnica
Son las funciones de agregación estándar. Operan sobre una única columna física en tu modelo de datos. SUM suma los valores, AVERAGE calcula el promedio aritmético, MIN busca el valor más bajo y MAX el más alto. Estas funciones ignoran automáticamente los valores vacíos (Blanks).
Limitación Crítica: Estas funciones no pueden realizar operaciones matemáticas dentro de sus argumentos. No puedes hacer
SUM(Ventas[Precio] * Ventas[Cantidad]); para eso necesitas un iterador.
Ejemplo Práctico: Logística en Chile
DAX – Medida de Agregación
Carga Total Despachada = SUM(Despachos[PesoKG])
Contexto: Calcula el peso total en kilos de todos los despachos realizados. Si filtras por la región de “Antofagasta”, la función sumará solo los kilos correspondientes a esa zona.
COUNT / COUNTA / COUNTROWS
Medida
Explicación Técnica
Funciones de conteo. COUNT cuenta números en una columna. COUNTA cuenta cualquier tipo de dato (texto, fechas, números) que no esté vacío. COUNTROWS es la más eficiente, ya que cuenta el número de filas de una tabla completa, independientemente de lo que contengan sus columnas.
Recomendación Pro: Siempre que quieras saber “cuántos registros hay” en una tabla, prefiere COUNTROWS. Es más rápida y clara que contar una columna específica.
Ejemplo Práctico: Operaciones
DAX – Conteo de Filas
Total de Boletas = COUNTROWS(Ventas)
Contexto: Devuelve la cantidad total de transacciones registradas. Útil para indicadores de volumen de venta en tiendas físicas o e-commerce.
DISTINCTCOUNT
Medida
Explicación Técnica
Cuenta la cantidad de valores únicos en una columna. Es fundamental para saber cuántas entidades distintas interactúan en tu negocio, eliminando los duplicados que genera la transaccionalidad diaria.
Ejemplo Práctico: Base de Clientes Chilenos
DAX – Medida
Clientes Unicos con Compra = DISTINCTCOUNT(Ventas[RutCliente])
Contexto: Aunque un cliente compre 10 veces al mes, esta medida lo contará solo una vez. Es la métrica estándar para medir el alcance real de una campaña o la fidelidad de la cartera.
SUMX
Iterador
Explicación Técnica
SUMX es un iterador que permite realizar cálculos a nivel de fila antes de sumar. Recibe dos argumentos: la tabla que debe recorrer y la expresión matemática que debe ejecutar en cada fila. Es la solución al problema de multiplicar “Precio por Cantidad” de forma dinámica, respetando los filtros del usuario.
¿Por qué SUMX y no SUM? SUM fallaría al intentar promediar precios o sumar cantidades sin considerar la relación fila a fila. SUMX garantiza que la multiplicación ocurra correctamente en cada transacción antes de acumular el total.
Ejemplo Práctico: Venta Total en CLP
DAX – Iteración
Ingreso Total Bruto =
SUMX(
Ventas,
Ventas[Cantidad] * Ventas[PrecioUnitarioCLP]
)
Contexto: La función recorre cada fila de la tabla Ventas, multiplica la cantidad de botellas de vino por su precio unitario, y finalmente suma todos esos resultados intermedios.
RANKX
Medida
Iterador
Explicación Técnica
Calcula el ranking (puesto) de un valor dentro de una lista. Es una de las funciones más complejas debido a su cantidad de argumentos: la tabla de referencia, la expresión para el ranking, el valor (opcional), el orden (ascendente/descendente) y cómo manejar los empates (Ties).
Ejemplo Práctico: Ranking de Sucursales
DAX – Ranking
Puesto de Venta Sucursal =
RANKX(
ALL(Sucursales),
[Ingreso Total Bruto],
,
DESC,
Dense
)
Contexto: Compara la venta de la sucursal actual contra todas las sucursales de Chile y le asigna un número (1, 2, 3…). El uso de ALL es crítico para que la sucursal pueda “ver” a sus competidoras y saber en qué puesto está.