¿Cómo tener diferentes medidas en una única columna de una matriz en Power BI?

Publicado por

En ocasiones algunos requerimientos que los usuarios de negocio solicitan ver en Power BI pueden poner en aprietos a los analistas de datos, debido a la complejidad que éstos pueden llegar a representar. Es aquí cuando se debe buscar diferentes alternativas para poder atender dicho requerimiento, para que los usuarios de negocio puedan realizar sus análisis de la manera que ellos lo requieran y lo solicitaron.

En esta publicación, se verá cómo a través de la función SWITCH en DAX se puede incluir, en una misma columna de una matriz, diferentes cálculos dependiendo del indicador que se este viendo en el registro, y, además, cómo cuando se selecciona el indicador en la matriz, éste puede interactuar con las demás visuales de la hoja.

Para poder entender un poco mejor el problema, observe los siguientes datos de muestra:

Datos de muestra.

En la imagen anterior se tiene una tabla con dos columnas, la primera contiene el indicador que se requiere analizar y en la segunda el valor de dicho indicador. Ahora bien, supongamos que los registros que tienen el número 1 en la columna de indicador hacen referencia a las ventas de algún negocio, el número 2 a los gastos y el número 3 a un promedio de ventas. Lo que se requiere hacer es mostrar los datos en una matriz de la siguiente manera.

Matriz con indicadores.

El cálculo que se utiliza para los indicadores de Ventas y Gastos es el mismo, la suma de la columna valor. No obstante, para el indicador de Promedio Ventas el cálculo cambia, ya que no es la suma sino el promedio de los registros de la columna indicador cuando sean iguales a 3. Como se puede ver, solo se está usando una medida DAX para mostrar cálculos distintos en una misma columna de la matriz, esto se puede realizar haciendo uso de la estrategia del selector de medidas.

Paso 1

El primer paso es el de crear las medidas en lenguaje DAX que se requieran implementar para calcular el valor de los diferentes indicadores. Para esto se crea una carpeta de medidas en donde se guardarán las mismas de la siguiente manera, esto por temas de orden y buenas prácticas:

Tabla de medidas.

Luego se procede a crear las medidas necesarias dentro de la carpeta que se acaba de crear y se elimina la Column1 para que se cree la carpeta de medidas.

  • Ventas = CALCULATE(SUM(‘Fact'[Valor]), ‘Fact'[Indicador]=1)
  • Gastos = CALCULATE(SUM(‘Fact'[Valor]), ‘Fact'[Indicador]=2)
  • Promedio Ventas = CALCULATE(DIVIDE(SUM(‘Fact'[Valor]), COUNTROWS(‘Fact’)), ‘Fact'[Indicador]=3)
Creación medidas.

Paso 2

El siguiente paso seria el de crear una tabla auxiliar con los nombres de los indicadores de Ventas, Gastos y Promedio Ventas que servirán para asignarle la medida que le corresponda a cada uno. Además, se creará una columna para mostrar los indicadores en el orden que se requiera.

Creación tabla auxiliar.

Paso 3

Teniendo la tabla auxiliar con los indicadores que se quieren visualizar en la matriz, se procede con la creación de la medida que asignara a cada indicador los cálculos que fueron creados en el paso 1 de la siguiente manera:

  • Selector Medidas = SWITCH(TRUE(),
    SELECTEDVALUE(Aux_Indicadores[Indicadores]) = “Ventas”, [Ventas],
    SELECTEDVALUE(Aux_Indicadores[Indicadores]) = “Gastos”, [Gastos],
    SELECTEDVALUE(Aux_Indicadores[Indicadores]) = “Promedio Ventas”,
    [Promedio Ventas],
    [Ventas]
    )
Creación medida selector medidas.

La función SWITCH evalúa una expresión ante una lista de valores y devuelve uno de varios resultados posibles dependiendo del valor.

En este caso se está usando la expresión TRUE() con el fin de que la medida entre en el ciclo para que evalué los valores, luego se le está indicando que, dependiendo del indicador, muestre el cálculo correspondiente.

Paso 4

Ahora con la tabla auxiliar que se creo en el paso 2 y la medida en DAX de selector de medidas creadas en el pasado anterior, ya se puede proceder con la creación de la visual de la matriz.

Creación matriz.

Listo, de esta manera ya se tendría en una misma columna de una matriz diferentes cálculos dependiendo del indicador que se este analizando. Ahora observemos cómo cuando se selecciona algún indicador de la matriz, éste puede interactuar dinámicamente con alguna visual que se tenga en la misma hoja haciendo lo que se muestra a continuación.

Visuales dinámicas.

Como se ve en el grafico de barras, al colocar la medida de Selector Medidas, el indicador que se muestra es el de Ventas, esto es por que en la medida se le está indicando que al no tener seleccionado ningún indicador en la matriz, muestre el de Ventas por defecto, y al interactuar con los indicadores de la matriz, ya el grafico de barras interactúa dependiendo del indicador que se seleccione.

En este blog vimos como, usando la función SWITCH, se puede colocar en una misma medida en DAX varios cálculos, dependiendo del indicador que se esté analizando. Esto es muy útil, por ejemplo, cuando se tiene un gráfico que analice la tendencia del indicador en el tiempo, ya que, con esta medida, cuando se seleccione el indicador en la matriz, la visual de tendencia cambia dependiendo del indicador seleccionado, y no se tendría la necesidad de crear varias visuales.

Si este blog te ha servido, te invitamos a compartirlo con tu red profesional de LinkedIn. Seguramente a alguien le será de utilidad.

Deja un comentario

Tu dirección de correo electrónico no será publicada.