D A T A M A N A G E M E N T

Cargando...

Introducción

Muchas veces tenemos los datos con una estructura que no es la deseada y para mostrar la información como se quiere visualizar es un poco complicado. Para ello existe en PowerBI funciones como SELECTEDVALUE y SWITCH para generar métricas dinámicas.

Un ejemplo de esta complicación es cuando tenemos muchas columnas por cada fila. En el informe que tenemos que desarrollar nos piden que solo mostremos una columna pero esta columna tiene que poder cambiar dependiendo del filtro seleccionado.

Bien, para realizar esto con PowerBI es necesario hacer uso de DAX para implementar la lógica y de tablas auxiliares para mostrar los filtros.

Solución

Descarga de material: http://datamanagement.es/Recursos/DAX_Medida_Dinamica.rar

En la estructura del conjunto de datos vienen definidas todas las métricas en columnas y queremos tener una columna que sea condicional y dependa de los filtros seleccionados.

Para poder realizar esto con powerBI lo primero que se realiza es la importación de los datos.

Crear tablas auxiliares para el filtro

Para crear las tablas hay que especificar los datos manualmente ya que es una tabla auxiliar de la cual nos apoyaremos. Realizar lo siguiente.

Comparativo

La tabla Comparativo sirve para filtrar las columnas que tienen los importes en la medida comparativa que se quiere mostrar.

Divisa

La tabla divisa sirve para mostrar las columnas que tienen los importes en la divisa seleccionada

El objetivo

El objetivo es conseguir un pequeño dashboard con medidas condicionales que muestre la suma de la columna deseada y dependiendo del filtro cambie de columna teniendo una única medida.

Para conseguir esto uso DAX. He creado 3 nuevas métricas.

  • Medida Condicional Comparativo
  • Medida Condicional Importe
  • Medida Condicional Seleccionado

Medida Condicional Comparativo

Esta métrica condicional devuelve una de las 6 columnas dependiendo de los filtros seleccionados. Para ello lo que realizo es obtener el valor de los filtros seleccionados con la función SELECTEDVALUE de DAX, luego concateno estos valores y después realizo un SWITCH de DAX para comprobar los valores seleccionados.

Para cada combinación devuelvo la suma de la columna en concreto. Como se puede observar esta medida puede devolver hasta 6 columnas diferentes comprobando los filtros seleccionados.

Código:

Medida Condicional Comparativo = 

var divisa_seleccionada = SELECTEDVALUE(Divisa[Divisa])

var comparativo_seleccionado = SELECTEDVALUE(Comparativo[Comparativo])

var concatenado = divisa_seleccionada & » – » & comparativo_seleccionado

return

    SWITCH( concatenado;

            «Local – Año anterior»; sum(Hoja1[importe_ano_anterior_local]);

            «Local – Presupuesto»; sum(Hoja1[importe_presupuesto_local]);

            «USD – Año anterior»; sum(Hoja1[importe_ano_anterior_usd]);

            «USD – Presupuesto»; sum(Hoja1[importe_presupuesto_usd]);

            «Local – «; SUM(Hoja1[importe_local]);

            «USD – «; sum(Hoja1[importe_usd]) )

Medida Condicional Importe

Esta medida es parecida a la anterior pero solo detecta los cambios en el filtro divisa. Además, solo puede devolver el USD o Local de las columnas “Importe” y obviando el presupuesto y año anterior.

Código:

Medida Condicional Importe =

var divisa_seleccionada = SELECTEDVALUE(Divisa[Divisa])

return

   SWITCH( divisa_seleccionada;

           «Local»; sum(Hoja1[importe_local]);

           «USD»; sum(Hoja1[importe_usd]))

Medida Condicional Seleccionado

Esta medida sólo sirve para mostrar un Label con las opciones seleccionadas. Es el Label que está encima de la tabla. 

Código: 

Medida Condicional Seleccionado =

var divisa_seleccionada = SELECTEDVALUE(Divisa[Divisa])

var comparativo_seleccionado = SELECTEDVALUE(Comparativo[Comparativo])

var periodo_seleccionado = SELECTEDVALUE(Hoja1[periodo])

var concatenado = divisa_seleccionada & » – » & comparativo_seleccionado & «- » & periodo_seleccionado

return

concatenado

DESCARGA DEL MATERIAL

Descarga: http://datamanagement.es/Recursos/DAX_Medida_Dinamica.rar 

Enlaces de interés

Leave a Comment

Virgen del pilar nº4, ático H

03330 Crevillente (Alicante)