Hola, ¿cómo están? Soy Guido y trabajo en el
área de BI en PI Data Strategy & Consulting hace casi un año. A lo largo de
los años me fui interesando más en los aspectos visuales y como, con algunos
cambios y un poco de creatividad, podemos llamar la atención de los usuarios
finales a la hora de crear nuestros reportes.
En esta oportunidad les quiero compartir una técnica sencilla para jugar con las formas y poder generar un efecto de relleno sobre las cards de un tablero que tienen uno o mas elementos de un slicer seleccionado.
Para ir al ejemplo les doy un poco mas de contexto. En el siguiente slicer vas a ver varios ítems para elegir que están relacionados con cada una de las cards en forma de burbujas que veras después.

La idea de esto es generar un efecto que
genere que las burbujas se rellenen, dejando las no seleccionadas vacías, de la
siguiente manera:

Estas burbujas las creé a partir de formas,
dejando la visual adelante. Normalmente para generar un efecto de relleno tendríamos
que crear una medida para el formato y configurarla en la parte del relleno de
la forma. De esa forma podemos agregarle una condición para que responda y
cambie de color en caso de que el ítem relacionado a esa card este
seleccionado.
Para ello podríamos crear, para cada card, una condición que valide si el ítem seleccionado corresponde a la card o no. Por ejemplo:
Formato_seleccion_60_dias =
VAR _filtro =
SELECTEDVALUE ( Partidas_Abiertas_CxP[Anticuacion] )
RETURN
IF ( _filtro = "60 días", "#E6E6E6", "#FFFFFF00" )
Y luego agregarlo como condición en el relleno de la forma.

De esta manera podemos generar un efecto al tener seleccionada la opción de "60 días"

EL PROBLEMA
Hasta ahí todo perfecto, el problema surge cuando hay más de una opción seleccionada.
La función SELECTEDVALUE resolvía bien el caso anterior donde solo había una opción seleccionada. El problema surge cuando hay más de una opción seleccionada.
Para eso vamos a explicar como funciona con un ejemplo:
Creamos una medida de filtro:
Filtro = SELECTEDVALUE ( Partidas_Abiertas_CxP[Anticuacion] )

Pero al seleccionar 2 o más ítems, la salida de filtro por defecto es BLANK(). Con lo cual esto no nos va a permitir rellenar más de una burbuja a la vez.

LA SOLUCIÓN
Si queremos que funcione para más de una selección una solución posible es crear una medida utilizando la siguiente función:
- VALUES: La función VALUES la
necesitamos para devolver una tabla con los valores distintos de esa columna.
https://learn.microsoft.com/es-es/dax/values-function-dax
Siguiendo con el ejemplo, Vamos a crear tantas medidas de formato como valores tengamos dentro de ese filtro (en el caso del ejemplo son 5). Tiene que rellenar la burbuja (#E6E6E6) y sino dejarla transparente (#FFFFFF00). Una de las medidas que usamos para dar este formato es la siguiente:
_formato_seleccion_anticuacion_60_dias =
IF (
"60 dias" IN VALUES (Partidas_Abiertas_CxP[Anticuacion])
, "#E6E6E6"
, "#FFFFFF00"
)
Luego de crearla, la asignamos el tipo de dato como texto:

Y luego la configuramos como condición dentro del relleno de la forma:


Finalmente se puede ver que cada burbuja se rellena en función de la selección del campo

Y cuando no hay filtro de anticuación seleccionado (all), rellena todas las burbujas:

Espero que les sirva el tip y puedan aplicarlo pronto. Les dejo un ejemplo de la solución en el Github público de Pi.
Escrito por Guido Maroneo,