DAX Power BI comparar periodos a YTD, MTD...
En este vídeo verás paso a paso cómo comparar dos periodos mediante fórmulas DAX (inicio del periodo hasta la fecha de hoy). Compararemos las unidades vendidas acumuladas del año hasta la fecha (YTD) respecto el mismo periodo del año anterior.
En este vídeo/artículo aprenderás a utilizar la función DAX “MAX” para poder calcular el acumulado hasta la fecha, limitar así la fecha para posteriormente hacer el sumatorio de las métricas (sesiones, ingresos, unidades vendidas…). Puedes descargarte el ejemplo en formato pbix al final del artículo.
1.- Introducción
El ejemplo dispone inicialmente de una tabla con 2 columnas, una columna con formato de fecha con la fecha inicio 1/1/2018 hasta la fecha del último día de la actualización (Hoy). Una segunda columna con las unidades vendidas.
Vamos a suponer que hoy es 20/5/2019 y queremos saber el total acumulado a día de hoy y también el total acumulado en la misma fecha del año anterior. Para ello necesitaremos hacer uso de la función MAX para establecer una fecha máxima, es decir hoy, para posteriormente hacer la suma de las unidades vendidas.
2.- Creación de 2 columnas (MAX, MAX-1)
Crearemos dos columnas y les llamaremos “MAX” y MAX-1”. “Max” nos devolverá la fecha máxima, es decir 20/5/2019 (hoy). Y “MAX-1” nos devolverá la fecha 20/5/2018. El objetivo es utilizar a posteriori estas dos fechas para sumar las unidades hasta la fecha MAX y hasta la fecha MAX-1.
Fórmula
Max = MAX(Ventas[Date])
Representa el día de hoy, hoy es 20/5/2019
Max-1 = Max-1 = DATE(YEAR(Ventas[Max])-1;MONTH(Ventas[Max]);DAY(Ventas[Max]))
Se construye a partir de la columna Max, donde nos devuelve la misma fecha que MAX menos 1 año en formato de fecha.
Resultado
3.- Creación de dos medidas (2018 YTD y 2019 YTD)
Escribiremos en la barra de fórmulas la siguiente expresión.
2018 YTD = CALCULATE(SUM(Ventas[Unidades]);FILTER(Ventas;Ventas[Date]<=MAX(Ventas[Max-1])))
Esta fórmula nos dice,
Calcula el sumatorio de las unidades vendidas de la tabla de ventas aplicando un filtro donde la fecha es anterior o igual a la fecha de hoy pero, del año anterior
2019 YTD = CALCULATE(SUM(Ventas[Unidades]);FILTER(Ventas;YEAR(Ventas[Date])= YEAR(DATE(2019;12;31))))
Esta fórmula nos dice,
Calcula el sumatorio de las unidades vendidas de la tabla de ventas aplicando un filtro donde la fecha es el año 2019
4.- Crearemos las visualizaciones
Una vez tenemos la fórmulas correctamente y las medidas que necesitamos ya podemos ir a crear las visualizaciones que nos permitan ver el acumulado a dia de hoy respecto al acumulado del año anterior.
Podemos utilizar una tabla donde indentificar rápidamente la suma total de 10.402 unidades vendidas a dia de hoy y compararlas con la misma fecha del año anterior. Su variació anual seria de un incremento del 17%. Lo calculamos creando una nueva medida con la siguiente operación matemática. (2018YTD/2019YTD) -1 = (10.402 / 8.859)-1= 17%
O podemos utilizar un gráfico de columnas agrupadas y líneas para que visualmente se vea más claro.
Si quieres puedes descargarte el archivo con el ejercicio explicado en este artículo/vídeo en el siguiente enlace.