Jueves, y hoy vengo con fuerza y el post de hoy promete. Seguimos con la inteligencia de tiempo, en concreto vamos a ver que es el T.A.M (Total Anual Móvil), cómo calcularlo y aplicarlo y lo complementaremos con los denominados grupos de cálculo, un puntazo que nos va a permitir hacer un modelo más sencillo en cuanto a número de métricas si tenemos que analizar con funciones de inteligencia nuestro modelo.
Por hacer una pequeña introducción, ¿sabéis qué es T.A.M o Total Anual Móvil? (Todos tecleando en Google “qué es el TAM”… ¡Qué esto no es un examen! J )
El T.A.M. es la suma de los 12 meses anteriores a nuestra métrica. Es un indicador que a la hora de analizar los datos nos va a venir muy bien ya que nos elimina la estacionalidad al integrar 12 meses consecutivos. Si os dais cuenta, me estoy refiriendo en todo momento al T.A.M. como indicador y no como medida en cuestión, ya que podemos calcular el T.A.M. de las cantidades vendidas, del importe vendido o comprado… Es decir, cualquier indicador que tenga cálculos de inteligencia de tiempos.
Por ejmplo, si una vez que hayamos calculado el T.A.M. de las ventas, lo comparamos/graficamos con las ventas mensuales y las ventas acumuladas en un gráfico de líneas ¿qué obtenemos?... La gráfica del zorro, ahí lo dejo… Más adelante veremos el porqué.
Vamos a nuestro modelo de Contoso de Power BI, y calculamos el total de las ventas, para ello:
Y lo arrastramos a nuestro informe como siempre, pero esta vez lo vamos a mostrar en un gráfico de líneas y a la vez en una matriz, tal que así:
Como podemos ver, las ventas fluctúan mes a mes, y en la matriz nos arroja por la configuración de la visual que tenemos seleccionada el total de todo el año. Ahora vamos a calcular acumulado mensual de las ventas, venga pregunta sobre el post anterior… para ello usaremos la función ¿TOTALYTD? ¿DATESYTD? ¿FILTER?
Bien, para llegar al resultado podríamos usar cualquiera de las tres como hemos ido viendo en los post anteriores:
TOTALYTD:
Buena práctica: siempre que CALCULATE esté presente en el código, hacerlo evidente siempre es una buena práctica, por ejemplo, por la transición de contexto que implica.
DATESYTD :Y las 3 nos devuelven, como podemos ver exactamente el mismo resultado:
Ahora entra la elección de la función que mejor se adapte a nuestro modelo y buenas prácticas. Por lo que os lo dejo a vuestra elección, pero por si tenéis dudas, lo mejor es ejecutar el analizador de rendimiento de Power BI y ver que métrica nos devuelve el valor más rápido. Para ello, colocamos las 3 métricas en tarjetas:
Sobre la barra de menú, hacemos click en Ver – Analizador de Rendimiento:
En el panel que se nos abre, le damos a iniciar grabación y actualizamos los objetos visuales:
Como vemos, para nuestro modelo, la métrica más rápida a la hora de ejecutarse es TOTALYTD, por lo que optaremos por ésta y la arrastramos a nuestro gráfico de líneas y la matriz:
Hasta aquí, sin problemas, pero os estaréis preguntado… Javi, con este post no me has mostrado “nada” interesante, sólo estás repitiendo formas de cálculo ya vistas... De acuerdo, pero todo tiene su explicación. Como podéis ver, para montar la tabla superior hemos generado 4 medidas diferentes, que son:
- Total ventas
- Total ventas TOTALYTD
- T.A.M.
- T.A.M. Año anterior
Pero si además de las 4 medidas anteriores, en nuestro modelo queremos calcular lo mismo para las unidades vendidas, para el coste de fabricación y para el beneficio. ¿Cuántas medidas deberíamos crear? ¿12 medidas a parte de las ya creadas? Podemos, pero terminaremos con un modelo bastante tedioso de mantener, así como de crearlo. Pero para solucionarlo, tenemos los maravillosos grupos de cálculo J
¿Qué son los grupos de cálculo?
Según la web de Microsoft:
Es una funcionalidad que nos permite crear rápidamente muchas medidas similares y pueden ayudar a descongestionar el panel Campos. ¿Qué quiere decir? En lenguaje para los mortales, los grupos de cálculos es una funcionalidad que creando “medidas” similares nos permite hacerlas dinámicas sin necesidad de crearlas unitariamente. ¿Cómo lo hacemos?
Para eso necesitamos usar la herramienta externa Tabular Editor. Vamos a Herramientas externas – Tabular Editor.
Para crear un grupo de cálculo, sobre la carpeta de tablas, hacemos click con el botón derecho y seleccionamos Crear Nuevo – Grupo Calculado:
Y escribimos la siguiente expresión:
SELECTEDMEASURE ()
La función SELECTEDMEASURE devuelve una referencia a la medida que está actualmente en contexto cuando se evalúa el elemento de cálculo, le damos el nombre que deseemos y lo validamos dándole al check del cuadro.
Ahora, vamos a crear la expresión para el cálculo del acumulado hasta la fecha actual con TOTALYTD, para eso escribimos:
¿Qué es lo que hace la expresión de arriba? Nos calcula el TOTALYTD de la medida seleccionada en el contexto (SELECTEDMEASURE).
Ahora vamos a generar el Total Anual Móvil, para ello escribimos:
¿Qué es lo que hace la expresión de arriba? Nos calcula el T.A.M. de la medida seleccionada en el contexto (SELECTEDMEASURE).
Ahora vamos a generar la expresión para el T.A.M. del año anterior, para eso seguimos el mismo criterio que hasta ahora:
Una vez ya generados los elementos deseados, para que estos se pasen a Power BI es imprescindible guardarlo J.
Una vez guardados, volvemos a Power BI y nos aparece el siguiente mensaje:
Le damos a actualizar y dejamos que Tabular Editor haga su magia en Power BI. Una vez que ha terminado de actualizar, vemos que se nos ha creado una tabla nueva llamada en este caso Grupo Calculado con una única columna:
Javi, ¿y dónde están los elementos que hemos creado? Tranquilos, están, pero no los vemos, para ello vamos a generar una tabla con los meses como filas y arrastramos la medida Total Ventas, de la siguiente manera:
Si os fijáis, la parte de las columnas está en blanco:
Arrastramos la columna de la tabla del Grupo Calculado que hemos creado y ¡¡¡tachan!!!:
¡¡Y tach…. Umm!! ¿No veis algo raro? La columna TAM Año Anterior no ha cambiado pero el resto sí… ¿Qué está pasando? Que he creado el elemento “incorrectamente” o mejor dicho referenciado a una medida del modelo para ver si estabais atentos:
Guardamos, y automáticamente se nos actualiza la tabla:
Hasta aquí todo correcto, pero ¿tengo que visualizar la matriz con todas las columnas? No es necesario, basta con sacar un segmentador y añadir la columna del grupo calculado:
Lo primero que debemos de hacer es crear una tabla con el nombre que asignemos a las medidas, para nuestro modelo hemos asignado los siguientes:
A continuación, arrastramos un segmentador a nuestro informe, en concreto para este caso me he descargado el ChicletSlicer de la Store de Microsoft:
Y para la métrica dinámica, creamos la siguiente medida con variables, de tal manera que en función del valor seleccionado nos muestre una medida u otra:
La medida nueva que acabamos de crear, la arrastramos a la matriz:
Como veis, no nos muestra nada ya que no tenemos ninguna selección en el segmentador. Si realizamos una selección en el mismo:
La matriz carga los valores de la métrica con las medidas de los grupos de cálculo. Si cambiamos la selección, la matriz actualiza los valores.
¿Qué os ha parecido los grupos de cálculo? ¿A qué son una pasada si tenemos que hacer un análisis de inteligencia de tiempo de muchas métricas que son repetitivas? Resumiendo, como dice Microsoft:
Los grupos de cálculo resuelven un problema en modelos
complejos en los que puede haber una proliferación de medidas redundantes
mediante los mismos cálculos.
Y con esto, ya termino el post y la saga de inteligencia de tiempo que al final os voy a terminar aburriendo.J
Y prepararos que vienen curvas... ¡la siguiente saga que comenzaremos será relacionada con SSIS!
¡Nos vemos en los datos!