Comparativa Técnica: SUM vs SUMX en DAX

0
(0)

En el lenguaje DAX, ambas funciones se utilizan para obtener totales, pero operan bajo conceptos de ejecución distintos: Agregación Directa frente a Iteración.

1. Función SUM (Agregadora)

La función SUM es la forma más sencilla de sumar valores. Pertenece al motor de agregación de DAX.

Características principales:

  • Ámbito: Solo puede operar sobre una única columna.
  • Contexto: Solo reconoce el Contexto de Filtro (lo que el usuario selecciona en segmentadores o visuales).
  • Simplicidad: Es más rápida de escribir y fácil de entender.

Sintaxis:

Medida_Suma = SUM(Tabla[Columna])

Ejemplo:

Si quieres el total de unidades vendidas:

Total Unidades = SUM('Ventas'[Cantidad])

2. Función SUMX (Iteradora)

La función SUMX es una función «X» o iteradora. Permite realizar cálculos complejos fila por fila antes de sumar los resultados.

Características principales:

  • Ámbito: Puede operar sobre una tabla (o una tabla filtrada) y una expresión aritmética.
  • Contexto: Crea un Contexto de Fila para evaluar la expresión en cada registro individual.
  • Versatilidad: Permite multiplicar columnas, aplicar lógica condicional o navegar relaciones con RELATED.

Sintaxis:

Medida_Iterada = SUMX(Tabla, Expresion)

Ejemplo:

Si necesitas calcular los ingresos totales multiplicando el precio por la cantidad de cada fila:

Total Ingresos = SUMX('Ventas', 'Ventas'[Cantidad] * 'Ventas'[PrecioUnitario])

3. Cuadro Comparativo

CaracterísticaSUMSUMX
Tipo de funciónAgregación (Aggregator)Iteración (Iterator)
Argumentos1 (Solo una columna)2 (Tabla y Expresión)
Contexto de FilaNo tieneSí, itera fila por fila
Cálculos complejosNo permite (ej. mult. columnas)Sí (ej. [Col A] * [Col B])
Uso de MemoriaMuy bajo y optimizadoPuede ser alto en tablas gigantes
NavegaciónNo puede usar RELATED directamentePuede usar RELATED en su expresión

4. ¿Cuándo usar cada una?

Usa SUM cuando:

  • Solo necesites sumar los valores de una columna que ya existe físicamente en tu modelo.
  • El rendimiento sea crítico y la columna ya contenga el dato final (ej. una columna calculada de «Venta Total»).

Usa SUMX cuando:

  • Necesites realizar una operación aritmética entre dos o más columnas de la misma tabla (evitando crear columnas calculadas innecesarias que pesan en el modelo).
  • Necesites sumar datos de una tabla relacionada (ej. SUMX(Ventas, Ventas[Cantidad] * RELATED(Producto[Precio]))).
  • Quieras aplicar filtros dinámicos dentro de la medida usando FILTER en el primer argumento.

5. El mito del rendimiento: «Syntactic Sugar»

Es importante saber que, internamente, el motor de DAX traduce un SUM(Tabla[Columna]) como: SUMX(Tabla, Tabla[Columna]).

Por lo tanto, para sumas de una sola columna, el rendimiento es idéntico. La diferencia real radica en la capacidad de SUMX para manejar expresiones de varias columnas y lógica de iteración.

6. Ejemplo Práctico: Error Común

Un error frecuente es intentar sumar una multiplicación de columnas con SUM:

Incorrecto (Error de sintaxis): Venta = SUM(Ventas[Cantidad] * Ventas[Precio]) -> SUM solo acepta una columna.

Correcto: Venta = SUMX(Ventas, Ventas[Cantidad] * Ventas[Precio])

¿De cuánta utilidad te ha parecido este contenido?

¡Haz clic en una estrella para puntuarlo!

Puntuación media 0 / 5. Recuento de votos: 0

Hasta ahora, ¡no hay votos!. Sé el primero en puntuar este contenido.

Publicaciones Similares

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *