Aprendizajes de la sección “Create measures by using DAX” del módulo “Model the data”

bernabe

En esta sección aprendimos a utilizar las medidas creadas con el lenguaje DAX. Para evitar usar columnas numéricas en nuestro modelo.
Recorrimos 9 temas:

Usar DAX para construir medidas avanzadas: Aprendimos a ubicar el acceso al editor de DAX. Utilizar DAX es la forma mas eficiente de manejar nuestro modelo de datos ya que no utiliza espacio físico en el disco duro y tiene mucho mas flexibilidad que cuando creamos columnas y tablas calculadas. Creamos medidas con “Sum” y con “IF”.
Usar funciones estadísticas básicas para el análisis: En este tema aprendimos a calcular las funciones básicas de estadística utilizando DAX. Creamos el Mínimo, Máximo, Promedio y Desviación Estándar de la columna ventas de la tabla sales.
Reemplazar columnas numéricas con medidas ( parte 1 ): Aprendimos las razones porque mejor usar medidas que columnas numericas. Con las medidas no hay que arrastrar y definir las operaciones como con las columnas. Las medidas pueden utilizarse dentro de otras medidas. Es preferible ocultar las columnas que ya fueron reemplazadas con medidas, para evitar su uso y mantener el modelo mas eficiente para el usuario.
Reemplazar columnas numéricas con medidas ( parte 2 ) Iteradores X: Los iteradores X, son otra manera de reemplazar las columnas numéricas por medidas. Estos iteradores calculan fila por fila. Y trabajan con campos de diferentes tablas relacionadas.

Por ejemplo si calculamos el promedio con “AVERAGEX” buscamos la columna de cualquier tabla relacionadas y luego la función calcula el promedio de cada fila y obteniene el promedio de la suma de promedios de cada fila. Lo que nos ahorraría tener una o varias columnas numérica en nuestro modelo.

Si solo usamos “AVERAGE” solo podemos obtener el promedio de la suma de las filas, lo que implica que debe existir una columna numérica con los promedios.
5. Usar CALCULATE para manipular filtros. Este tema consiste en hacer un análisis del porcentaje de ventas por vendedor y por región manipulando filtros con la función CALCULATE. Esto para no usar las columnas de la tabla de sales y seller directamente en el modelo.

Primero utilizamos CALCULATE para obtener el porcentaje de ventas por vendedor:

Combinamos la función CALCULATE y ALL para obtener las ventas de todos los vendedores; luego usamos la función DIVIDE para dividir las ventas totales de todos los vendedores entre las ventas por vendedor y así obtuvimos el % de ventas por vendedor.

Aprendimos que ALL no evade todos los filtros pero que ALLSELECTED dirige los filtros que son seleccionados dentro esta función. En nuestro caso solo la columna de vendedores. A esta función se le puede agregar las columnas que se requieran .

Luego hicimos una prueba usando ALLSELECTED en la formula de CALCULATE para obtener los porcentajes de venta por región y vendedor : Agregamos la región en la vista del modelo para ver el comportamiento de los filtros y observamos que las ventas totales siguieron mostrándose por vendedor y por consiguiente el porcentaje de ventas por región estaba incorrecto. debido a que este filtro solo se aplica a la columna(s) que se selecciona(n) dentro de la formula, sin importar el orden, que era solo la de vendedor y no incluía región en nuestro caso.
Agregamos la columna región a la formula ALLSELECTED, y se mostraron las ventas totales y se corrigió el porcentaje por región.
En conclusión las columnas que van a describir nuestro análisis (región y vendedor en nuestro caso) deben estar incluidas en la formula ALLSELECTED sin importar el orden, para que el análisis tome los totales y los porcentajes correctos.
Y si solo vamos a usar una columna para describir el análisis solo debemos incluir esa sola columna en la formula ALLSELECTED.
También aprendimos que las buenas prácticas indican que la función CALCULATE debe combinarse con otras medidas, preferibles a usar columnas y tablas en el modelo.

Capacitación exprés de CALCULATE.
*Contexto de evaluación: Existen dos tipos de contexto de evaluación; el Contexto de fila: se refiere a los campos dentro de una fila, sucede con las columnas calculadas y los iteradores X y el contexto de Filtro. Que hace referencia a columnas y tablas.

El contexto de Filtro. Las herramientas que modifican este contexto son: los paneles de filtros, los Slicer, las columnas de visualización, filas de visualización y CALCULATE()

Los filtros son tablas.

Funciones que devuelven tablas:
FILTER(): Devuelve una tabla filtrada
ALL(): Quita todos los filtros de la visualización y devuelve una tabla.
ALLSELECTED(): Quita todos los filtros de la visualización y devuelve una tabla.
ALLEXCEP(): quita todos los filtros excepto los que se pongan en la funcion y devuelve una tabla.
FUNCIONES DE TIME INTELLIGENCE.
7. Implementar “Time intelligence” usando DAX.: El “Time intelligence” es una de las categorías de funciones de DAX.

Usamos funciones de inteligencia de tiempo con CALCULATE; Primero utilizamos la funcion SAMEPERIODLASTYEAR” esta toma las ventas del mismo periodo evaluado pero del año anterior.

Luego acumulamos la información por año con la función DATESYTD”
8. Capacitación exprés de Time Intelligence. Las funciones de la categoría Time Intelligence, se utilizan para : a)Comparar la venta contra periodos previos, b)Obtener acumulados mensuales, trimestrales o anuales de ventas c)Obtener el promedio de ventas de los últimos 30 dias.
Estas funciones son diferentes a las de fecha y hora.
Los requisitos son que las columnas de fecha deben tener los rangos de fechas considerados en el análisis. B. la columna de fecha debe ser tipo fecha.
La inteligencia de tiempo trabaja con la columna fecha ( Dates ). Las demás columnas de la tabla calendario son para describir las fechas, como ej. Que día fue, que mes ect.
Los pasos que siguen estas funciones son: a. detectan el contexto de filtro actual para determinar el periodo de fecha de contexto. B. luego elimina ese contexto de filtros de la columna de fecha para tener todas las fechas disponibles. C. se desplaza en el tiempo para encontrar el nuevo periodo ( especificado con la función ). D. Aplica el filtro para obtener el periodo deseado.
Grupos de funciones: 1er grupo( que devuelven una fecha en especifico) FIRSTDATE(), STARTOFMONTH(), ENDOFMONTH(), STARTOFQUARTER(), ENDOFQUARTER().
2DO. Grupo( que devuelven una tabla con fechas ): DATEADD(), DATESMTD() DATESQTD(), DATESYTD(), DATESINPERIOD().
3ER Grupo ( que evalúan una expresión ): TOTALMTD(), TOTALYTD(), OPENINGBALANCE MONTH(), CLOSINGBALANCE, QUARTER().
9. Crea “semi-additive measures”: Son las que miden una sola dimensión.