Una de las novedades recientes más interesantes de Power BI ha sido el componente Decomposition Tree o “Esquema jerárquico”. Permite analizar dinámicamente los componentes de un valor bajo un esquema jerárquico. Esta jerarquía la podremos construir dinámicamente, añadiendo, eliminando o cambiando de posición los niveles que la componen. El uso del visual es muy sencillo e intuitivo y en este mini post ya reflejé la reacción de los usuarios ante las posibilidades del mismo.

Pero vamos a dar un paso más en el mismo añadiendo la posibilidad de poder cambiar dinámicamente la medida analizada en el mismo, o sea, analizar distintas medidas en un Decomposition Tree.

En este caso vamos a analizar dos medidas, una es un porcentaje y la otra un importe, que podremos elegir en un Slicer o filtro. Es importante tener en cuenta que NO cualquier medida es susceptible de ser usada en un Tree, sólo aquellos valores “desglosables o acumulables” sin perder sentido al hacerlo como, por ejemplo, Importe de ventas, Gastos… No así Precios Medios, ADR… o porcentaje de Beneficio, aunque en este caso, según cómo se planteen los componentes del Tree sí podría tener sentido mostrando los componentes del coste.

Como paso previo necesitamos haber creado las medidas a combinar, que en nuestro ejemplo se llaman “Producción” y “% Ocupación”.

Construir el selector de medidas

El procedimiento es muy similar al explicado en este post (también en éste que muestra cómo alternar entre valores). Resumiendo, requiere:

Crear una tabla no relacionada con el resto que contendrá los elementos a elegir en el Slicer.

Una columna al menos que debe contener el nombre de las medidas a elegir:

He añadido otra columna adicional “Grupo” que permitirá que esta tabla sea polivalente, creando grupos de medidas en el supuesto caso que necesitasemos esta funcionalidad en otros componentes. Lo usamos como filtro del slicer:

Crear la Medida a mostrar en el Decomposition Tree

Creo una medida que he llamado “Valor Tree” que muestra el valor según el elemento elegido en el filtro, usando la fórmula switch:

Valor Tree =
IF (HASONEFILTER(TreeAnalisis[Analizar]);
SWITCH(values(TreeAnalisis[Analizar]);
"Producción" ;
[Importe Prod];
"% Ocupación" ;
[% Ocupacion]*100
)
;
BLANK()
)

Una limitación que tenemos es que valor “Producción” es un importe en euros y el porcentaje ocupación un valor entre 0 y 1. Tenemos una medida para mostrar y dos valores “heterogéneos” en cuanto a formato. No podremos usar la función format para formatear como %, puesto que provoca una conversión a texto del valor y el Decomposition Tree no lo admitirá (saldrá un error). Como mucho, podremos convertirlo a base 100 para que muestre un valor lógico y más asequible visualmente, y podremos formatear la medida como un numérico con dos decimales.

Crear la medida para el título

Algo tan simple como mostrar el nombre de la medida seleccionada en el slicer:

Titulo Tree = "Analizando la medida " & SELECTEDVALUE(TreeAnalisis[Analizar])

El Visual Decomposition Tree

El control es el indicado y tras dibujarlo en la pantalla hay que añadir al mismo la medida a analizar, en este caso la que hemos creado. Además, añadiremos los niveles de las dimensiones que deseeamos analizar, que pueden estar en diferentes tablas (apartado “Explicar por”):

Podremos ver que el valor del elemento Root cambia según la medida elegida:


Añadir el título

Pero no cambia el “Nombre” de la medida. Por eso se ha creado la medida título , que vamos a mostrar en un Textbox o cuadro de texto que insertaremos en el informe:

Una vez añadido el título, ya tenemos el informe listo.

Para navegar el Decomposition Tree…

….sólo hay que pulsar el icono “+” al final de cada elemento expandido para ir profundizando en el detalle requerido:

Y si deseamos eliminar alguno de los niveles bastará con pulsar la “X” en el encabezado del nivel a eliminar:

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *