Hola el día de hoy traigo mi solución , para el reto Entrenamiento DAX 003 – Promedio móvil de ENTERPRISE DNA el cual es una maravilla acá te dejo el link para que participes y sumes más ideas para este maravilloso reto.
https://forum.enterprisedna.co/t/dax-workout-003-rolling-average/33937
Explicare lineá a lineá el código utilizado para que se entienda el por que y para que funcionando diferentes opciones podemos dar solución a esta y muchas otras preguntas más.
La solución presentada resuelv el reto Entrenamiento DAX 003 – Promedio móvil de ENTERPRISE DNA y se explica línea por línea el código utilizado para entender su funcionamiento y cómo se llegó a la solución
- La primera línea de código usa la función VALUES(Dates[MonthnYear]) para devolver todos los valores únicos de la columna «MonthnYear» de la tabla «Dates», es importante entender como funciona la función values, dado que esta nos devolverá los datos únicos de cada uno de estas, como lo vemos acá.
- La segunda línea de código usa la función AVERAGEX para calcular el promedio de las ventas totales en función de los valores únicos de la columna «MonthnYear», acá creamos la función la cual utilizaremos que es y como funciona esta dado que itera y va aplicando sobre la tabla que le pasaremos
- El siguiente paso es agregar un filtro a la tabla «Dates» para seleccionar un rango de fechas, en este caso los últimos 180 días, lo coloque asi para ir entendiendo la lógica de lo que quería hacer y entender para manejar el comportamiento del filtro.
- Luego se usa la función ALL para remover los filtros de contexto y asegurarse de que se muestren todas las fechas, no solo las que están en el contexto actual, por que segun el objetivo deben estar las dos funciones total sales y la que están solicitando
- A continuación, se crea un parámetro que permite al usuario seleccionar un rango de tiempo para el promedio de ventas. Se crea una variable llamada «valor_parametro» que captura el valor seleccionado por el usuario, Creamos el parámetro de 3 meses en tres meses
- Luego se usa la función SWITCH para asignar un valor a la variable «seleccion» si lo deseas o si solo deseas utilizar el true en la selección se activara en función del valor del parámetro seleccionado, esta función nos permitirá colocar su equivalente en días en la función calculo para que filtre los días según lo que filtro el cliente
- Finalmente, se usa la función CALCULATE para calcular el promedio de las ventas totales en función de los valores únicos de la columna «MonthnYear» y el rango de fechas seleccionado por el usuario. Se utiliza la variable «seleccion» para filtrar los datos según el rango de fechas seleccionado.
- Se agrega una condición IF para garantizar que solo se muestren los datos donde tenemos datos reales, en lugar de mostrar valores en blanco. Se crea una variable llamada «validar_blanco_ventas» que utiliza la función ISBLANK para comprobar si los datos de ventas son nulos o en blanco. Si son nulos o en blanco, se devuelve un valor en blanco, de lo contrario, se devuelve el cálculo del promedio de ventas.
La solución presentada muestra el uso de diferentes funciones en DAX para resolver un problema específico y se explica paso a paso para entender su lógica y su funcionamiento. La comprensión de estas funciones permitirá a los usuarios trabajar con mayor facilidad con grandes conjuntos de datos y crear soluciones más avanzadas
Vicente Antonio Juan Magallanes
Business Intelligence Technical.
Perfil linkedin.