Saltar al contenido principal
InicioTutorialesPower BI

Cómo utilizar las funciones SUMX de Power BI

Explora la función SUMX en Power BI, su sintaxis, cómo funciona y las mejores prácticas a tener en cuenta.
25 abr 2024  · 8 min leer

Si acabas de empezar a aprender Power BI con nuestro programa de carrera de Analista de datos en Power BI, es posible que ya conozcas la función SUM básica del curso de introducción a DAX (si no es así, echa un vistazo a este rápido tutorial de DAX). En ese caso, puede que también te estés preguntando qué es la función SUMX, cómo funciona y cómo puedes utilizarla en tus análisis.

Este tutorial explorará la función SUMX, responderá a todas estas preguntas y te guiará en su implementación en Power BI.

Mientras repasas este y otros tutoriales de Power BI, recuerda que, aunque puede que no se te exija aprender programación como desarrollador de inteligencia empresarial o de Power BI, podría ser un activo importante para tu carrera. Consulta nuestro artículo sobre si deberías aprender código como analista de BI para saber por qué.

¿Qué es la función SUMX en Power BI?

La función SUMX de Power BI es una potente función DAX que se utiliza para calcular la suma de una expresión que se calcula para cada fila de una tabla. Esta función es importante porque permite cálculos más complejos que una simple suma.

Ten a mano nuestra hoja de trucos DAX para consultar rápidamente muchas de las funciones DAX más útiles que encontrarás.

image2.png

La sintaxis de la función SUMX es

SUMX(Table, Expression)

  • Table: la tabla o expresión de tabla sobre la que itera la función.
  • Expression: la expresión que se evalúa para cada fila de la tabla. Esta expresión suele implicar datos de columnas de la tabla.

SUMX es especialmente útil cuando debes realizar cálculos que dependen de valores de filas individuales antes de sumar los resultados. Por ejemplo, calcular las ventas totales multiplicando la cantidad y el precio de cada transacción, o aplicar distintos tipos de descuento por producto antes de sumar el total de ventas con descuento. Ofrece flexibilidad y precisión en tus cálculos, por lo que es una función muy importante que debes conocer.

Cómo funciona SUMX en Power BI

Aquí tienes un desglose de cómo funciona la función SUMX internamente:

  • Cuando se llama a SUMX, recorre una a una las filas de la tabla especificada. Para cada fila, establece temporalmente un contexto de fila, que es una especie de entorno en el que se puede acceder directamente a los valores de la fila actual.
  • En este contexto de fila, la función evalúa la expresión proporcionada en su segundo argumento. La expresión suele incluir uno o más valores de otra columna de la fila actual. A medida que la función recorre la tabla, recalcula esta expresión para cada fila basándose en los datos de esa fila.
  • A medida que SUMX procesa cada fila, agrega los resultados y mantiene un total acumulado. Power BI utiliza el motor de análisis en memoria de DAX (VertiPaq), que está optimizado para cálculos como éste.
  • Tras iterar por todas las filas, SUMX finaliza el total agregado, que es la suma de los resultados individuales calculados para cada fila. Este valor final se devuelve como resultado de la función.

Comprender los contextos

En Power BI, el contexto es crucial para entender cómo operan las funciones DAX como SUMX. El contexto determina cómo se calculan y muestran los valores de los modelos de datos. Consulta nuestro curso de introducción a DAX, donde tratamos los contextos con más detalle. Con la función SUMX, hay que tener en cuenta dos tipos principales de contexto: el contexto de fila y el contexto de filtro.

Contexto de fila

El contexto de fila se refiere al entorno en el que las fórmulas DAX evalúan cada fila de una tabla. Cuando estás en un contexto de fila, puedes hacer referencia directamente a columnas de la tabla, y las fórmulas DAX utilizarán el valor de la fila actual en los cálculos.

Cuando utilizas SUMX, crea y aprovecha el contexto de fila para su funcionamiento. Para cada fila de la tabla especificada, SUMX evalúa la expresión dada en el contexto de esa fila concreta.

Contexto de filtrado

El contexto de filtrado es un conjunto de filtros aplicados a los datos de un informe de Power BI, como filtros de objetos visuales, objetos de segmentación y filtros a nivel de informe. Este contexto determina qué puntos de datos se tienen en cuenta en los cálculos.

Aunque SUMX opera dentro del contexto de fila para sus cálculos fila a fila, estos cálculos siguen estando sujetos al contexto general de filtro del informe o visual. Esto significa que las filas iteradas por SUMX son las que cumplen los criterios definidos por el contexto de filtro actual.

Interacción entre contextos en SUMX

Al utilizar SUMX, la función respeta tanto el contexto de fila como el contexto de filtro. La tabla sobre la que itera SUMX está formada por el contexto de filtro, mientras que el cálculo de cada fila se realiza en el contexto de fila.

Puedes utilizar una medida dentro de SUMX. En este caso, se produce una transición de contexto, en la que el contexto de fila se transforma temporalmente en un contexto de filtro equivalente para evaluar la medida de cada fila.

Buenas prácticas SUMX

Cuando utilices la función SUMX en Power BI, ten en cuenta algunas de estas buenas prácticas:

  • Asegúrate de que tu modelo de datos está bien estructurado antes de aplicar SUMX. Unas relaciones y un esquema del modelo correctamente definidos son cruciales para que los informes de Power BI sean precisos y estén optimizados.
  • SUMX no es compatible con el modo DirectQuery cuando se utiliza en columnas calculadas o reglas de seguridad a nivel de fila.
  • Mantén las expresiones utilizadas dentro de SUMX lo más sencillas y eficientes posible. Evita los cálculos demasiado complejos que ralentizan el rendimiento, especialmente con grandes conjuntos de datos.
  • Ten en cuenta la transición de contexto y cómo puede afectar a los resultados de tu función.
  • SUMX sólo tiene en cuenta los números. Se ignoran los espacios en blanco, los valores lógicos y el texto.

SUMX comparado con otras funciones

Algunas funciones son similares a SUMX, y saber qué función utilizar y cuándo hacerlo, puede ser un poco confuso. Vamos a desglosar dos de las funciones que causan la mayor confusión.

SUMX vs. SUM

SUM se utiliza para calcular la suma de una columna de una tabla y tiene la siguiente sintaxis:

SUM(Column)

SUMX itera sobre cada fila para evaluar una expresión, mientras que SUM suma directamente los valores de una sola columna. Esto significa que SUMX puede realizar cálculos más complejos con varias columnas.

Sin embargo, la naturaleza iterativa de SUMX hace que consuma más recursos, especialmente con grandes conjuntos de datos, en comparación con SUM. Recuérdalo si trabajas con un modelo de datos grande, y utiliza SUM para sumas sencillas.

SUMX vs. CALCULATE

CALCULATE modifica el contexto del filtro en un cálculo y es una de las funciones más potentes de DAX. Esta es la sintaxis de la función CALCULATE:

CALCULATE(Expression, Filter1, Filter2,...)

CALCULATE es ideal para escenarios en los que debas realizar cálculos en condiciones de filtro distintas de las que se aplican actualmente al informe o modelo. Por otro lado, SUMX es para cálculos a nivel de fila seguidos de una agregación.

En situaciones complejas, podemos utilizar CALCULATE con otras funciones, como SUMX. Por ejemplo, puedes utilizar CALCULATE para definir un contexto de filtro específico dentro del cual SUMX realice sus cálculos y agregación a nivel de fila.

Implementación de SUMX en Power BI: Guía paso a paso

Utilizando los datos de muestra de Power BI (disponibles al instalar Power BI Desktop), demostraremos cómo utilizar la función SUMX y cómo combinar SUMX con algunas otras funciones DAX útiles.

Aquí tienes una instantánea de nuestros datos que muestran las ventas mensuales de diferentes productos en varios segmentos y países.

image4.png

Paso 1: Crear una medida utilizando SUMX

He aquí un ejemplo clásico del poder de SUMX. Queremos utilizar el número de unidades vendidas, el precio por unidad y el valor de los descuentos realizados para calcular el valor total de las ventas.

SUMX(Sales, (Sales[Units Sold] * Sales[Sale Price])-Sales[Discounts])

Aquí tienes una tabla con el resultado de nuestra función SUMX. Como puedes ver, a las ventas totales también se les puede aplicar un contexto de filtro; en este caso, filtramos por Año y Producto.

image1.png

Paso 2: Aplicar filtros a SUMX

Podemos utilizar filtros con la función SUMX de dos formas: con FILTER o con CALCULATE.

FILTER se utiliza para aplicar filtros específicos a una tabla o expresión dentro de SUMX. Permite un control más granular de las filas sobre las que itera SUMX.

SUMX(FILTER(Sales, Sales[Discount Band] = "High"), Sales[Units Sold])

CALCULATE modifica el contexto de filtro de la función SUMA, permitiendo agregaciones condicionales complejas.

SUMX(Sales, CALCULATE(SUM(Sales[Units Sold]), Sales[Year] = 2020))

Paso 3: Combinar SUMX con otras funciones

ALL y ALLEXCEPT

Estas funciones se utilizan para eliminar los filtros de una tabla o de todas las tablas excepto las especificadas. Suelen utilizarse dentro de CALCULATE y en combinación con SUMX para realizar cálculos sobre un conjunto de datos sin filtrar.

SUMX(ALL(Sales), Sales[Sale Price] * Sales[Units Sold])

VALUES

VALUES devuelve una tabla de una columna con valores únicos de una columna. Puedes combinarlo con SUMX para cálculos que requieran iterar sobre valores únicos.

SUMX(VALUES(Sales[Country]), [Total Sales])

AVERAGEX, MINX y MAXX

Son otras funciones iterativas similares a SUMX, pero que se utilizan para calcular valores medios, mínimos o máximos, respectivamente. Pueden anidarse o utilizarse junto con SUMX.

AVERAGEX(Customers, SUMX(RELATEDTABLE(Sales), Sales[Units Sold]))

IF y SWITCH

Las funciones lógicas como IF y SWITCH pueden utilizarse dentro de SUMX para realizar cálculos condicionales.

SUMX(Sales, IF(Sales[Country] = "Mexico", Sales[Units Sold], 0))

USERELATIONSHIP

USERELATIONSHIP especifica una relación concreta que se utilizará en un cálculo. Es especialmente útil cuando existen múltiples relaciones entre tablas.

SUMX(CALCULATETABLE(Sales, USERELATIONSHIP(Date[Date], Sales[Date])), Sales[Units Sold])

Conclusión

En este tutorial, profundizamos en los detalles de la función SUMX en Power BI y te mostramos cómo implementarla tú mismo. No sólo es una función DAX flexible y potente, sino que también demuestra la importancia de comprender los contextos en DAX. Para obtener más información, consulta nuestro programa de conocimientos básicos de Power BI.

Temas

¡Comienza hoy tu viaje por Power BI!

Course

Introduction to Power BI

4 hr
407.8K
Master the Power BI basics and learn to use the data visualization software to build impactful reports.
See DetailsRight Arrow
Start Course
Ver másRight Arrow
Relacionado

blog

8 proyectos de Power BI para desarrollar sus habilidades

Explore nuestra lista de proyectos de Power BI para principiantes e intermedios en diferentes sectores y casos de uso.
Jess Ahmet's photo

Jess Ahmet

8 min

tutorial

Tutorial de cálculo de Power BI

Aprenda a utilizar la función CALCULAR de Power BI con ejemplos de uso.
Joleen Bothma's photo

Joleen Bothma

6 min

tutorial

Tutorial de DAX en Power BI para principiantes

Aprende qué es DAX y descubre la sintaxis y las funciones DAX fundamentales que necesitarás para llevar tus conocimientos de Power BI al siguiente nivel.
DataCamp Team's photo

DataCamp Team

9 min

tutorial

Tutorial de Power BI para principiantes

Aprende los fundamentos de Power BI y a crear un informe básico con este tutorial paso a paso.
DataCamp Team's photo

DataCamp Team

16 min

tutorial

Cuadros de mando de Power BI frente a informes: Una guía completa

Explore las diferencias clave y las características únicas de los cuadros de mando e informes de Power BI. Aprenda a aprovechar eficazmente ambas herramientas para el análisis de datos, la visualización y la toma de decisiones.
Maarten Van den Broeck's photo

Maarten Van den Broeck

8 min

tutorial

Tutorial sobre la ejecución de scripts de Python en Power BI

Descubre las distintas formas de utilizar Python para optimizar el análisis, la visualización y el modelado de datos en Power BI.
Joleen Bothma's photo

Joleen Bothma

9 min

See MoreSee More