Vamos a ver una técnica para resaltar con formato condicional, filas de una tabla mientras se usa una segmentación de datos. Reproduce ahora el video o puedes ir leyendo paso a paso el tutorial adelanto de nuestro curso de Power BI.
Video
Resaltar filas
Usaremos las tablas Sales, Products y Calendar.
Queremos seleccionar un producto y que no se filtre la visualización, que se vean todos los productos, pero que se resalte el producto seleccionado con la segmentación.
Para ello vamos a crear una falsa tabla, de esta manera, Modelado, Nueva Tabla, vamos a llamar a la tabla Pseudo Prod Table, utilizamos la función SUMMARIZE, que nos vale para resumir una tabla de entrada agrupando las columnas especificadas. La tabla será Products, la agrupación será de la tabla Products por el campo Code y el nombre de columna será de la tabla Products el Producto.
Con esto lo que vamos a conseguir es crear esta tabla falsa y crear además una falsa relación para ajustar el producto filtrado con la tabla. No va a haber una relación entre esta tabla y el resto de las tablas del modelo.
Vamos a insertar una visualización de tabla, ampliamos un poco la anchura de la visualización. Vamos a mover el campo Product de la tabla Products y la medida de Total Sales la pasamos a Columnas.
Vamos a utilizar como segmentador de datos justo el Producto de la tabla falsa que acabamos de crear. De momento el segmentado no está leyendo a la tabla.
Vamos a crear una medida de resaltado de ventas, clic derecho en Sales, Nueva Medida, llamamos a esta medida Resaltado Sales, hacemos Alt+Enter (salto de carro). Utilizamos la función CALCULATE, como expresión usamos Total Sales (la medida de nuestras ventas) y luego en el filtro vamos a aplicar TREATAS, una función que trata las columnas de la tabla de entrada como columnas de otras tablas y VALUES para quedarnos con elementos únicos de nuestra tabla falsa que acabamos de crear con el campo Product Code, cerramos el paréntesis y luego el nombre de columna será de la tabla Products el campo Product Code. Cerramos los paréntesis de TREATAS y de CALCULATE.
Con esto conseguimos esta relación con el uso de TREATAS, que va a activar temporalmente la relación entre el Product Code de la tabla Products y el Product Code la tabla falsa.
A continuación, vamos a crear una medida para establecer el formato condicional. Clic derecho en Sales, Nueva Medida, llamamos a esta medida CF, de formato condicional, aplicamos un IF y utilizamos una estructura ISFILTERED para comprobar si se están filtrando los productos de nuestra tabla falsa con Pseudo Prod Table[Product] y luego vamos a considerar con && (un operador AND/Y) que además Total Sales sea estrictamente igual a la medida de Resaltado Sale que hemos generado previamente, de forma que cuando todo esto se cumpla, estas dos condiciones, que nos devuelva un color “Orange”, un color naranja. Cerramos paréntesis del IF y aplicamos Enter.
Si las ventas totales son iguales a la medida de Resaltado Sales entonces que se rellene de color naranja y entonces en la visualización lo que vamos a aplicar es un formato condicional a Product, clic derecho, Formato condicional, Color de Fondo, Estilo de Formato Valor de Campo,
trabajamos con colores y esto se tiene que aplicar justo a nuestra medida de CF, al control del formato condicional. Esto lo aceptamos.
Igualmente, para Total Sales, clic derecho, aplicamos Formato condicional, color de fondo, estilo de formato Valor de campo y en qué campo debemos basar esto, también en nuestra medida de CF de nuestro formato condicional. Y esto lo aceptamos. Al aplicar un clic en algún producto vemos que se resalta en color naranja el producto seleccionado en la parte superior.
La cuestión de tener que haber utilizado justo aquí el operador de estrictamente igual (“==”) viene con motivo de si no lo utilizamos, si esto lo quitáramos y dejáramos solamente “=”, estaríamos detectando también el valor de 0. Eso queremos evitarlo para que solamente se resalte el valor de la propia venta que estamos registrando y no el valor del 0. Estamos considerando un 0 igual que un «blank» y como le vamos a exigir que sea estrictamente igual Total Sales al Resaltado Sales, pues eso lo que hará será obviar el 0 porque dejará de ser considerado estrictamente igual al «blank».
Ese es el motivo de haber hecho esa operación.
Luego con el ISFILTERED lo que estamos haciendo es que si no seleccionamos ningún producto se rellenarían todos los productos con color naranja. Al añadir este control lo que hacemos es forzar a que el segmentador realmente esté siendo filtrado. Esto hará que devuelva un VERDADERO cuando los filtros se están directamente aplicando en la columna seleccionada.
Se han de cumplir las dos condiciones para que el formato condicional lo pinte.
Pues eso es un ejemplo de cómo se puede crear un resaltado de filas de una tabla utilizando para ello un segmentador de datos.