DAX – Introducción – Parte 3 – Medidas

Si bien las “Columnas calculadas”, “Medidas”, o “Tablas calculadas” son en si componentes de la definición de un modelo de datos de Analysis Services, Powet Pivot o Power BI, la potencia de DAX se hace visible en la definición de “Medidas” pero a su vez para quienes no han tratado con el concepto de “Medidas” o “Measures”, la principal dificultad aparece en comprender como funcionan las medidas mas allá de como escribir DAX.

Las medidas son la definición de un cálculo, expresado en DAX, que devuelve un valor escalar, pero este cálculo ocurre cuando se invoca la “Medida”, y ahi nace la principal diferencia con las “Columnas calculadas”, cuyo valor se pre-calcula al procesar los datos del modelo, para cada registro de la tabla que contiene la columna.

Si la medida se invoca en un grafico de barras, la misma se calculará para cada elemento del eje X, y si este grafico posee valores de serie o leyendas, se calculará para cada segmento de la barra. Otra forma que suele explicarse o visualizarse el funcionamiento de una medida, es en la celda de una tabla dinámica de Excel o una visualización tipo Matrix en Power BI, donde la medida se calcula para cada celda, tomando para el cálculo los valores de las filas, columnas y filtros que afectan a esa celda.

Para crear una simple “Medida” podemos probar

Ventas = SUM( Sales[SalesAmount] )

y si la misma la colocamos en una grilla o “Matrix” asignando un par de columnas de nuestro modelo en las filas y columnas veríamos lo siguiente:

DAX - Medidas 1.png

En este ejemplo la medida “Ventas” se calculó para cada “celda” de nuestra grilla, al ser una medida tan simple como un SUM de una columna, puede cueste comprender la verdadera utilidad de las medidas mas allá de que no ocupan espacio. Y la pregunta habitual es porque no usar una columna del modelo… algo asi:

DAX - Medidas 2

Si nuestra problemática se resuelve con un SUM puede que las medidas no tengan una utilidad inmediata, aunque en el fondo estamos trabajando con “medidas implícitas”.

Una forma sencilla de ver que se necesitan trabajar con “medidas”, es cuando necesitamos calcular un ratio o porcentaje. Por ejemplo necesitamos crear una medida que represente el “Margen %”, donde el margen es la diferencia entre la ventas y el costo y el % sale de divider el margen por las ventas…

Si tratamos de resolver este caso con columnas tendríamos una columna de total de ventas, otra para el costo, y la diferencia de ambas como “margen”

DAX - Medidas 3

Ahora si creamos una columna como el % del margen, tendríamos en nuestro modelo:

DAX - Medidas 4

Al ser una columna calculada tenemos el % del margen de cada línea, pero no es un valor agregable, es decir, si tratamos de usar esa columna en una grilla o grafico con una granularidad diferente el resultado es erróneo.

DAX - Medidas 5

Ahora si en cambio definimos una medida tendríamos el resultado correcto, pues la “medida” se calcula para cada celda, donde tenemos en este caso % para cada color, año o total de forma correcta.
DAX - Medidas 6

En las medidas podemos crear otros cálculos, promedios, saldos, acumulados del mes, del año, mismo periodo año anterior, y estos cálculos afectados por los elementos de filas, columnas y filtros que hacen a la celda

 

 

 

 

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s