¿Qué es DAX? Si es la primera vez que escuchas o lees algo sobre DAX, has de saber que, aparte de ser el índice de cotización bursátil de referencia en Alemania, es un lenguaje informático utilizado tanto en Power Pívot como Power BI y SSAS Tabular.

En este post hablamos sobre esta segunda acepción. DAX es un lenguaje de una sintaxis sencilla, pero de una extraordinaria potencia. Y esto es así ya que permite entre otras cosas generar columnas calculadas a partir de las tablas de nuestro modelo, definir nuestros propios cálculos o medidas personalizadas, así como también establecer variables para cálculos más complejos.

DAX permite calcular a nivel agregado con multitud de funciones. Estas posibilitan poder trabajar no sólo a nivel de filas o columnas, sino hacerlo a nivel de tabla. Podemos encontrar tanto funciones agregadas como funciones de fecha y tiempo, funciones lógicas, funciones estadísticas o funciones de texto, entre otras. Es por ello por lo que DAX es considerado el motor de Power BI, uno de los servicios de Business Intelligence de referencia en el mundo actualmente.

 “La información es el aceite del Siglo XXI, y la analítica es el motor de combustión.” 

Peter Sondergaard

La función más extendida y utilizada en DAX es CALCULATE, ya que permite modificar el contexto de fila de los datos que tengamos en el modelo, y evaluar la expresión en un contexto de filtro nuevo deseable. Por ejemplo, con una función tipo SUM(importe[ventas]) obtendríamos las ventas en un contexto determinado de fecha. Mientras que si empleamos:

Ventas año pasado =

CALCULATE(

[Total Ventas];

SAMEPERIODLASTYEAR(Fechas[Date]))

estaremos cambiando el contexto de fila actual y obteniendo las ventas, pero del mismo período del año anterior.

Esto nos permitiría, por ejemplo, al departamento de ventas hacer comparativas respecto al año pasado y ver que líneas de negocio, productos o clientes están generando menos venta que el año anterior.

Otra característica importante de DAX es la posibilidad de establecer variables dentro de nuestro código. Esto, además de hacer más sencillo la creación del modelo de datos, nos puede servir para establecer rangos o categorías de clientes, productos, etcétera y segmentar así nuestra información de manera fácil y rápida. Podríamos, por ejemplo, segmentar los clientes por el margen de venta que nos dan definiendo categorías tipo ABC, permitiendo así establecer acciones comerciales concretas sobre aquellos clientes que nos estén dejando menos margen.

Finalmente, otra característica muy potente con DAX que tenemos es que permite trabajar con fechas y obtener datos acumulados por mes, trimestre, año o hasta la fecha actual. Para poder realizar cálculos tan potentes como estos, es necesario generar con DAX una tabla calendario en el modelo que nos sirva de base. Un dato interesante podrían ser las ventas acumuladas del año a fecha actual:

Running Total Ventas =

CALCULATE(

[Total Ventas];

FILTER(

ALL(

Fechas);

Fechas[Date]<MAX(Fechas[Date])

)

)

Si quieres conocer más acerca de cómo la potencia de DAX puede contribuir a la mejora de tu modelo de datos, y por tanto de tus decisiones empresariales, visita nuestro programa específico de Inteligencia Empresarial.

Y si, además, quieres empezar a medir tus procesos, identificar tu potencial de mejora e introducir cambios que te lleven a esa mejora, podemos ayudarte a empezar. Para más info contáctanos.