Categories: ConsejosPower BI

5 funciones DAX que todo usuario de Power BI debería conocer

Power BI es hoy en día una de las herramientas de análisis de datos más populares del mercado, debido entre otras razones a su facilidad de uso; aprender a utilizar DAX correctamente marca la diferencia entre un cuadro de mando básico y uno avanzado con cálculos más complejos, profundos y precisos.

Para muchos usuarios que se adentran en el mundo de la analítica de datos puede ser complejo al principio. Por esa misma razón, es importante conocer algunas funciones DAX para poder empezar a profundizar en los cálculos realizados.

En este artículo, explicaremos cinco funciones DAX que todo usuario de Power BI debería conocer, tanto para un usuario que busca mejorar sus conocimientos sobre este lenguaje, como para un usuario más experto, donde busca optimizar sus informes. Las funciones que trataremos a continuación supondrán una ayuda para entenderlas y ser capaces de utilizarlas en el día a día.

1. SUMX

Una de las funciones más imprescindibles para todo usuario de Power BI es entender la diferencia entre las funciones SUM and SUMX.

  • SUM se utiliza para calcular la totalidad de una columna. Por ejemplo, SUM(Tabla[Columna]) simplemente suma todos los valores en una columna específica.
  • Por otro lado, SUMX es más poderosa porque no solo suma, sino que evalúa una expresión fila por fila antes de sumarla. Su sintaxis es SUMX(Tabla, expresión), lo que permite realizar cálculos complejos. Por ejemplo, con SUMX podemos calcular SUMX(Facturas, Facturas[Cantidad] * Facturas[PrecioUnitario]), que nos da el total de ventas multiplicando la cantidad por el precio unitario en cada fila de la tabla de Facturas. Esto es algo que no se podría lograr solo con la función SUM.

Aunque se podría sustituir el uso de SUMX por una columna calculada en Power Query, la diferencia clave es que SUMX permite realizar cálculos dinámicos que involucran expresiones complejas y, sobre todo, relaciones entre distintas tablas. Es decir, mientras que una columna calculada se aplica de manera estática y por tabla, SUMX evalúa cada fila de manera independiente, lo que resulta ideal cuando los cálculos requieren una evaluación más flexible y la integración de datos de múltiples tablas (siempre que éstas estén relacionadas).

Un ejemplo práctico de la utilidad de SUMX sería en el cálculo del margen de ganancia, donde podemos usar algo como:

SUMX(Ventas, Ventas[PrecioUnitario] - Ventas[CostoUnitario])

Este cálculo nos permitirá obtener el margen por venta. De manera similar, para calcular comisiones de vendedores, podríamos utilizar una fórmula como:

SUMX(Ventas, Ventas[Monto] * Ventas[PorcentajeComision])

Esto nos da la comisión total de cada venta realizada, calculada fila por fila, lo que sería más complicado con SUM.

2. ALL

La función ALL en Power BI es fundamental para evitar que se apliquen filtros en determinadas medidas, permitiendo obtener el total de una tabla o columna sin tener en cuenta los filtros activos. Esta función se utiliza comúnmente cuando se quieren calcular proporciones o porcentajes sobre el total, independientemente de los filtros aplicados en el reporte.

Un caso típico de uso de ALL es en el cálculo de porcentajes de peso sobre un total. Por ejemplo, si queremos saber qué porcentaje de la facturación de un cliente representa respecto al total de ventas de todos los clientes, podemos usar la siguiente fórmula:

DIVIDE(SUM(Ventas[Importe]), CALCULATE(SUM(Ventas[Importe]), ALL(Clientes)))

En esta fórmula, SUM(Ventas[Importe]) calcula el total de las ventas, pero este cálculo está condicionado por los filtros que estén aplicados en el reporte como, por ejemplo, si estamos filtrando por un cliente específico. Sin embargo, en la segunda parte de la fórmula, CALCULATE(SUM(Ventas[Importe]), ALL(Clientes)), al incluir la función ALL(Clientes), se elimina el filtro de clientes, lo que permite calcular el total de ventas sin ninguna restricción de cliente, obteniendo así el total global.

El resultado de esta fórmula nos permite calcular el peso de las ventas de un cliente respecto al total de todas las ventas, sin que el filtro aplicado en el cliente específico afecte el cálculo. Este tipo de cálculo es muy útil para analizar cómo se distribuyen ciertos valores (como ventas, ingresos, o cualquier otra métrica) en relación con el total de los elementos de un conjunto (en este caso, todos los clientes).

3. REMOVEFILTERS

La función REMOVEFILTERS en Power BI permite eliminar filtros específicos de una columna o tabla, sin afectar a los demás filtros activos en el reporte. Es útil cuando necesitamos que un filtro particular no influya en una medida, permitiendo un control más preciso sobre el contexto de evaluación de los datos.

A diferencia de ALL, que elimina todos los filtros sobre una tabla o columna, REMOVEFILTERS nos ofrece la flexibilidad de eliminar filtros específicos sin interferir con otros filtros que puedan estar activos. Esto es especialmente valioso cuando necesitamos mantener ciertos filtros, pero queremos que uno en particular no afecte el cálculo de la medida. Esto la convierte en una herramienta más precisa cuando necesitamos realizar cálculos detallados y controlados sin perder el contexto de otros filtros relevantes.

Por ejemplo, si estamos calculando el total de ventas pero queremos que la medida no se vea influenciada por el filtro de Descripción de Productos, podemos usar la función REMOVEFILTERS de la siguiente manera:

CALCULATE(SUM(Ventas[Importe]), REMOVEFILTERS(Productos[Descripcion]))

En este caso, SUM(Ventas[Importe]) calcula el total de ventas, pero el filtro sobre la columna Productos[Descripcion] es eliminado gracias a REMOVEFILTERS. De esta forma, obtenemos el total de ventas sin que el filtro de descripción de productos afecte a la medida, mientras que cualquier otro filtro que esté en el reporte (por ejemplo, filtros de fecha o cliente) sigue siendo válido y aplicado.

4. VALUES

La función VALUES en Power BI se utiliza para devolver los valores únicos de una columna o tabla según el contexto actual. Esta función es especialmente útil cuando necesitamos trabajar con una lista de valores distintos, como, por ejemplo, para contar cuántos elementos únicos existen en un conjunto de datos, o para crear una tabla con solo los valores únicos de una columna específica, respetando los filtros aplicados en el reporte.

Por ejemplo, si queremos obtener una lista de clientes únicos en una tabla, considerando los filtros activos (como los filtros por fecha o región), podemos usar la función VALUES de la siguiente manera:

VALUES(Clientes[Nombre])

Este cálculo devolverá una lista con todos los clientes únicos en el contexto de los filtros actuales. Esto es útil cuando queremos hacer un análisis o crear una visualización que muestre solo los clientes que cumplen ciertas condiciones (por ejemplo, aquellos que han realizado compras en el último mes o que pertenecen a un segmento específico).

Además, VALUES no solo devuelve una lista de valores, sino que también puede ser utilizada en combinación con otras funciones para hacer cálculos o interacciones más avanzadas. Por ejemplo, se puede usar dentro de CALCULATE para cambiar el contexto de evaluación y calcular medidas en función de los valores únicos obtenidos:

CALCULATE(SUM(Ventas[Importe]), VALUES(Clientes[Nombre]))

Esto calcularía el total de ventas considerando solo los clientes únicos que están en el contexto actual.

Una de las aplicaciones más comunes de VALUES es cuando se necesita crear una tabla con los valores únicos de una columna para realizar interacciones sobre ella. Esta tabla puede luego ser utilizada para crear gráficos dinámicos o filtros, permitiendo que los usuarios interactúen con los datos de manera más controlada y específica.

5. SWITCH

La función SWITCH en Power BI es muy útil para establecer una serie de reglas y condiciones en función de diferentes escenarios. A diferencia de usar múltiples IF anidados, SWITCH permite una forma más clara y estructurada de realizar comparaciones y asignar valores específicos según el contexto, lo que facilita la lectura y comprensión de la fórmula.

Un caso común de uso de SWITCH es en la clasificación de valores en categorías según ciertos rangos. Por ejemplo, si queremos clasificar las ventas en tres categorías: “Bueno”, “Aceptable” o “Mal”, podemos usar SWITCH de la siguiente manera:

SWITCH(

TRUE(),

[Ventas] >= 1000000, "Bueno",

[Ventas] >= 500000, "Aceptable",

"Mal"

)

En este caso, SWITCH evalúa las condiciones en el orden en que se encuentran. Si [Ventas] es mayor o igual a 1.000.000, la medida devuelve “Bueno”. Si es menor, pero igual o mayor a 500.000, devuelve “Aceptable”. Y si ninguna de las condiciones anteriores se cumple, devuelve “Mal”. Este enfoque nos permite establecer reglas claras para el usuario y facilita la interpretación rápida de los datos.

Si necesitamos aplicar reglas más complejas, podemos combinar SWITCH con otras funciones. Por ejemplo, si queremos calcular una comisión sobre el total de ventas según el número de ventas realizadas, podríamos usar una fórmula como esta:

SWITCH(

TRUE(),

COUNT(Ventas) >= 100, 1.2,

COUNT(Ventas) >= 50, 1.1,

1

) * SUM(Ventas[Importe])

En este caso, el cálculo de la comisión depende de la cantidad de ventas realizadas. Si el número de ventas es mayor o igual a 100, se aplica un multiplicador de 1.2. Si es mayor o igual a 50 pero menor que 100, se aplica un multiplicador de 1.1. Si el número de ventas es menor a 50, la medida devuelve 1 (aunque esta parte podría ser personalizada para devolver otro valor o realizar algún otro cálculo). Luego, el valor resultante se multiplica por el total de ventas.

Una de las ventajas de SWITCH sobre los IF anidados es su capacidad para manejar múltiples condiciones de manera mucho más legible y organizada. Si bien podríamos hacer lo mismo con múltiples IF, SWITCH proporciona una visión más clara y eficiente de las reglas que estamos implementando, especialmente cuando se trata de múltiples condiciones.

Conclusión

Dominar DAX es esencial para sacar el máximo provecho de Power BI. Estas funciones vistas en el artículo permiten realizar cálculos más complejos y específicos, facilitando el análisis de datos y mejorando la calidad de los informes, proporcionando además las herramientas necesarias para transformar informes básicos en potentes cuadros de mando que reflejan la realidad de los datos de forma precisa.

Para los usuarios que buscan profundizar en Power BI, el conocimiento y la práctica de las funciones DAX marca la diferencia en la capacidad de personalizar y optimizar los cálculos. Ya sea en un entorno de análisis sencillo o en uno de mayor complejidad, DAX abre la puerta a análisis más detallados, dinámicos y efectivos.