La idea es poder crear un informe donde el usuario pueda escoger la medida a visualizar.
Lo iremos viendo paso a paso pero al final obtendremos algo así: un panel donde el usuario selecciona la medida que quiere visualizar.
O si el usuario no ha seleccionado nada: un mensaje de aviso
He obtenido ideas de Dynamically change the information within a visual via a slicer y el video Change measures using slicers in Power BI – Power BI Tips & Tricks y las he adaptado a mi informe base y el ejemplo que quiero mostrar.
Las medidas
La plantilla ya lleva la medida para las ventas, llamada EUR, pero debemos crear dos medidas más
Coste = SUMX(Ventas;Ventas[Precio Coste]*Ventas[Unidades])
Beneficio = [EUR]-[Coste]
A ambas le ponemos formato con separador de miles y cero decimales.
Con estas tres medidas podemos hacer rápidamente una tabla con los datos
Y tres gráficos
Uno para ventas
Otro para costes
Y un último para beneficios
Y si queremos podemos crear un gráfico que muestre las tres cosas juntas con una visualización de columnas agrupadas
Que nos mostraría los tres valores en un mismo grafico
Pero quiero ir más allá, y descubrir nuevas técnicas y funciones
La tabla de medidas
Debemos empezar creando una tabla de medidas con Especificar datos que podemos llenar con
Y antes de aceptar al pie le ponemos nombre a la tabla: Medidas
No olvidemos activar la ordenación por índice en la columna medida
Esto nos ha creado una tabla, que NO tiene que estar relacionada con ninguna otra, cosa que comprobamos en el editor de relaciones
La función SWITCH
Ahora usaremos la función SWITCH para elegir la medida que debe mostrarse según la selección
Creamos una nueva medida y ponemos
Medida a Mostrar = SWITCH(TRUE();
VALUES(Medidas[Medida])=»Ventas»;[EUR];
VALUES(Medidas[Medida])=»Coste»;[Coste];
VALUES(Medidas[Medida])=»Beneficio»;[Beneficio];
BLANK()
)
La función SWITH devuelve resultados diferentes en función del valor de una expresión
El primer parámetro es la expresión a evaluar, en nuestro caso ponemos TRUE(), siempre se cumple
A partir de ahí empezamos a poner parejas de valores y resultados
Esto lo podemos interpretar como
SWITCH verdadero, o sea la primea condición siempre se cumple
Si la medida es Ventas, muestra la medida EUR
Si la medida es Coste, muestra la medida Coste
Si la medida es Beneficio, muestra la medida Beneficio
En otro caso no muestres nada: BLANK()
Observe como usamos la función VALUES para saber el valor que ha sido seleccionado en la tabla medidas
El Segmentador
Creamos un segmentador con el campo Medida de la tabla medidas.
Le podemos dar formato horizontal, y ampliar la fuente y poner un color de fondo para hacerlo más agradable
El grafico vinculado a la medida
Creamos un grafico de columnas con
Y si seleccionamos una medida se nos muestra su valor
Si no hemos seleccionado nada nos da un error
La función SWITCH mejorada
Vamos a solucionar esto añadiendo algo en el SWITCH
Medida a Mostrar sin nada = IF(ISCROSSFILTERED(Medidas[Medida]);
SWITCH(TRUE();
VALUES(Medidas[Medida])=»Ventas»;[EUR];
VALUES(Medidas[Medida])=»Coste»;[Coste];
VALUES(Medidas[Medida])=»Beneficio»;[Beneficio];
BLANK()
);BLANK())
Lo interpretamos como SI, la tabla medidas tiene un filtro activo, aplica todo los del SWHITCH, en caso contrario devuelve BLANCK
Ahora si en el grafico cambiamos y ponemos la nueva medida
Y no hay nada seleccionado, no se muestra nada
El mensaje de información
El último paso será crear algo para informar al usuario que tiene que seleccionar algo, y si lo ha seleccionado mostrarle lo que esta visualizando
Creamos una nueva medida con
Titulo = IF(ISCROSSFILTERED(Medidas[Medida]);VALUES(Medidas[Medida]) & » por Familia»;»Seleccione una opción en el filtro para mostrar el grafico»)
Lo que interpretamos como:
Si se ha filtrado medidas, escribe la medida filtrada más el texto por Familia
En caso contrario escribe: Seleccione una opción en el filtro para mostrar el grafico
Y lo añadimos a nuestra presentación con una Tarjeta
Resultado
Si no hay nada seleccionado el grafico sale en blanco y se nos avisa que debemos seleccionar
Si hay algo seleccionado se visualiza en el gráfico y se muestra como titulo
Seleccionar medidas por segmentador puede ser útil para incluir más información en una sola pantalla, dando opción al usuario a mostrar lo que necesite ver.
Buenos días, me podrían ayudar con lo siguiente: tengo una tabla la cual se llama demanda, con las siguientes columnas:
Hora Demanda Carga desconectada
12:55 1499 0
12:56 1490 0
12:57 1495 0
12:58 1493 55
12:59 1488 30
13:00 1499 25
13:01 1496 0
13:02 1495 0
quiero uno columna o medida que me reemplace los ceros por Blank, pero a la vez que antes donde haya número distinto de cero (en este caso blank, porque no abría ceros puesto que ya habrían sido reemplazados) me ponga cero y después de un número en el primer blank me ponga cero.
La tabla quedaría así:
Hora Demanda Carga desconectada
12:55 1499
12:56 1490
12:57 1495 0
12:58 1493 55
12:59 1488 30
13:00 1499 25
13:01 1496 0
13:02 1495
Alguien me puede ayudar, se los agradeceré
Buenos días:
Excelente sitio y de mucha ayuda para aprender más.
¿Es posible bajar el modelo para analizarlo mejor?
Gracias.
¿A qué tablas vinculas las medidas? ¿a Medidas o a Ventas?
Si yo quiero seleccionar dos opciones a la misma vez, el grafico no lo permite, como solucionas eso?
Muchas gracias, una buenas prácticas para llevar acabo.
Tengo una duda, podrías hacer lo mismo a partir de un campo de dimensiones?
Es decir, en este caso las medidas de cantidades se mantienen fijas y lo que se debería cambiar es el campo de dimensión, tipo el cliente, la familia, etc.
Gracias nuevamente.