La Reina de DAX la función CALCULATE

Feb 4 / Elías Ortiz
Antes de comenzar lo primero que debemos tener en cuenta que DAX (Data Analysis Expressions) es un lenguaje creado por Microsoft específico para análisis de datos con modelos de datos tabulares y se puede usar en Excel, Analysis Services y Power BI. DAX es una recopilación de funciones, operadores y constantes que se pueden usar en una fórmula o expresión para calcular y devolver uno o varios valores. Dicho más fácilmente, DAX ayuda a crear información de datos nueva que ya está en un modelo. 

En DAX existen más de 250 funciones.

Algunas de ellas son:

Funciones de fecha y hora: CALENDAR, CALENDAR AUTO, DAY, MONTH..
Funciones de filtro: ALL, ALLEXCEPT, ALLSELECTED, CALCULATE, CALCULATETABLE..
Funciones financieras: ACCRINT,DB, DISC, EFFECT, FV, NPER..
Funciones lógicas: AND, IF, IFERROR, NOT, OR, SWITCH..
Funciones de inteligencia temporal: DATEADD, FIRSTDAY, TOTALMTD, TOTALYTD..

Solo por mencionar algunas de ellas ya que hay muchas más, dentro de las mismas hay algunás más “relevantes” que otras, pero sin duda la “joya de la corona” es CALCULATE.

Es bastante sencillo entender como funciona CALCULATE en un principio, pero no nos equivoquemos ya que esta función es la más importante de DAX y requiere profundizar para entenderla a la perfección, si quieres ser un experto de CALCULATE te recomendamos hacer el siguiente curso:

DAX AVANZADO LOS SECRETOS DE LA FUNCIÓN CALCULATE

Según la guía de Microsoft, CALCULATE evalúa una expresión que es modificada por los filtros especificados. Esto quiere decir que si, por ejemplo, tenemos una expresión para calcular la media de los valores de una columna, podemos controlar si aplicarla a toda la columna o solo a ciertos valores que nos interesen.

Siempre que realizamos una fórmula en DAX, hay que contextualizar la medida, pero esto no solo pasa en Power BI sino también en el resto de circunstancias cuando hablamos de un número, por ejemplo si tuviéramos un dato en concreto 120 y no nos dice absolutamente nada no vamos a entender que es lo que quiere decir, podrían ser 120ml, 120kg, 120coches o lo que nos imaginemos, pero si nos dicen que 120 es el límite de velocidad, entonces entendemos que quiere decir ese dato concreto, ya entendemos y por tanto asociamos ese límite de velocidad a la carretera. Pues en Power BI pasa exactamente lo mismo todas nuestras medidas tienen un contexto de evaluación que es de filtro o de fila.

CALCULATE puede modificar el contexto de consulta, también conocido como el contexto de filtro original, por ejemplo podemos tener la dimensión color y con CALCULATE podemos obviar el filtro del informe, veamos un ejemplo sencillo para entender un poco que es lo que puede hacer CALCULATE:

Antes de nada, partimos de un modelo en estrella con su tabla de hechos fVentas y sus dimensiones, dFecha, dProducto y dCliente:
Write your awesome label here.
Queremos analizar de todos los productos cual es el porcentaje de ventas por color, por lo tanto, con una visualización de tabla vamos a poder observar cuales son las ventas totales por color:
Write your awesome label here.
Ya tenemos cuales han sido las ventas de todos los colores de nuestros productos, ahora para tener ese porcentaje del total entra en juego nuestra función CALCULATE, que lo que le estamos diciendo es que nos sume el importe de las ventas pero que no tenga en cuenta la dimensión Producto es por ello que como vemos en la imagen de abajo en todos los colores sale el mismo importe.

Total Ventas = CALCULATE([Ventas Importe],ALL(dProducto))
Write your awesome label here.
Una vez ya hemos calculado el total ya podemos calcular el % importe sobre el total con la siguiente medida:
% Total Ventas = DIVIDE([Ventas Importe],[Total Ventas])
Write your awesome label here.

¡Conviértete en un profesional de  Microsoft Power Platform!

Cursos