Power BI · Capítulo 9 · Lección de conceptos · 7 min de lectura

Cada clic es un filtro

Un clic no redibuja una imagen. Agrega un filtro al modelo, el filtro fluye por las relaciones y todas las medidas de la página se evalúan de nuevo con él. Conocer el camino explica la magia y los errores.

La idea

Una página de Power BI parece un conjunto de imágenes, pero nada en ella es una imagen hasta el final. Cada visual es una pregunta, y la pregunta es una medida evaluada bajo un conjunto de filtros. Cuando el lector hace clic en una barra, elige un valor en un segmentador o define un filtro de página, no cambia el aspecto de las imágenes. Agrega un filtro, y todas las medidas de la página se ejecutan de nuevo con él.

Esa sola idea explica por qué la interactividad "simplemente funciona" con las medidas corrientes, y por qué unas pocas medidas fallan en cuanto alguien toca el informe.

Figura 1

Un clic en la barra de app de un gráfico de canales

'Date'

  • Date
  • Year
  • Month

orders

  • order_id
  • order_date
  • channel
  • status

channel = "app"

customers

  • customer_id
  • segment
  • state

products

  • product_id
  • category

order_items

  • order_id
  • product_id
  • line_total

Paso 1 de 4 Una página tiene un gráfico de barras de ventas por orders[channel] y, al lado, uno de ventas por products[category]. Los dos leen order_items.

  1. Una página tiene un gráfico de barras de ventas por orders[channel] y, al lado, uno de ventas por products[category]. Los dos leen order_items.
  2. El lector hace clic en la barra de app. El clic se convierte en un filtro sobre orders[channel], igual que lo haría un segmentador.
  3. El filtro baja hasta order_items. El gráfico de categorías vuelve a evaluar Sales solo con las líneas de app, así que sus barras se encogen: eso es el filtrado cruzado.
  4. Los filtros no suben de vuelta. Una tarjeta con COUNTROWS(customers) no recibe nada de este clic, así que no cambia, y el lector se pregunta por qué.

Por qué existe

Un informe estático responde la pregunta que pensó su autor. Cada gerente de Harbor & Pine tiene una pregunta distinta: web en el Oeste, Lighting en las fiestas, solo clientes de empresa. Un autor que construye una página por pregunta no termina nunca. Dejar que el lector ponga los filtros, y escribir las medidas una sola vez (la misma Sales en una tarjeta, un gráfico y un tooltip), es lo que hace que una página sirva a cuarenta personas.

El costo es que el autor ya no controla qué filtros ve una medida. Una medida se evalúa bajo lo que elija el lector, y se escribió para el caso que el autor imaginó.

Cómo funciona por dentro

Entre un clic y una imagen nueva hay una cadena fija de eventos.

  1. El clic se convierte en un filtro sobre una columna. Una barra del canal app es orders[channel] = "app"; el valor de un segmentador es lo mismo.
  2. Edit interactions decide quién lo recibe. Por defecto un gráfico filtra a los demás. Puedes cambiar un visual de destino a resaltar (la barra completa queda de fondo y la parte filtrada se dibuja encima) o a ninguno (ignorar). Es un ajuste por visual en Format → Edit interactions.
  3. El filtro fluye por las relaciones, del lado uno al lado muchos, hasta la tabla que lee la medida.
  4. Cada medida se evalúa de nuevo bajo todos los filtros combinados.

Figura 2

Qué pasa entre el clic y la nueva imagen

  1. Clic o segmentador En una barra, un punto, un valor del segmentador
  2. orders[channel] = "app" El clic convertido en filtro
  3. Edit interactions Por visual: filtrar, resaltar o nada
  4. Cada medida Se evalúa de nuevo con los filtros nuevos
  5. Repintado Cada visual afectado se redibuja

Paso 1 de 5 Un clic o un valor del segmentador es el inicio de la cadena, no un repintado.

  1. Un clic o un valor del segmentador es el inicio de la cadena, no un repintado.
  2. Se traduce en un filtro sobre una columna de una tabla.
  3. **Format → Edit interactions** decide, visual por visual, si el filtro se aplica, solo resalta o se ignora.
  4. Cada visual que aceptó el filtro evalúa de nuevo sus medidas con él. Una medida con ALL o CALCULATE dentro puede conservar o descartar ese filtro a propósito.
  5. Solo entonces cambia la imagen.

Filtrar o resaltar

La diferencia entre los dos modos se ve bien en el gráfico de categorías tras un clic en la barra de app. Con filtrar, la barra de Furniture pasa a ser las ventas de Furniture en pedidos de app y queda más corta. Con resaltar, la barra conserva su longitud completa en un color atenuado y la parte de app se dibuja dentro, así que el lector ve el todo y la porción. Resaltar es mejor cuando la porción debe leerse como parte de algo; filtrar es mejor cuando el resto es ruido. Resaltar solo funciona con medidas que se pueden dividir por el valor seleccionado, así que una medida que use ALL sobre esa columna se verá mal.

Los tres niveles de filtro

Un filtro puede vivir en un visual, en una página o en todo el informe, y los tres se combinan con AND. Ponlo en el visual cuando pertenece solo a ese gráfico, en la página cuando define de qué trata la página ("solo pedidos completados") y en el informe cuando nada del archivo debe ver el resto. Los segmentadores son los mismos filtros, puestos en manos del lector.

Medidas que ignoran el clic a propósito

A veces una medida no debe obedecer todos los filtros. Un porcentaje necesita dos números: la celda y el total del que es porcentaje. El total es un CALCULATE que quita algunos filtros, y la función que uses decide cómo se trata el segmentador del lector.

Figura 3

Porcentaje del total con un segmentador de canal: ALL frente a ALLSELECTED

Segmentador: nada seleccionado
channelSalesShare of allShare of selection
app$995,52443.3%43.3%
marketplace$324,29914.1%14.1%
web$980,34742.6%42.6%
Segmentador: web
channelSalesShare of allShare of selection
web$980,34742.6%100.0%

Paso 1 de 4 Ventas completadas de 2025 por canal, sin selección. Share of all divide entre un total con ALL(orders[channel]), Share of selection entre uno con ALLSELECTED. Coinciden.

  1. Ventas completadas de 2025 por canal, sin selección. Share of all divide entre un total con ALL(orders[channel]), Share of selection entre uno con ALLSELECTED. Coinciden.
  2. El lector elige web en el segmentador. Solo queda la fila de web.
  3. ALL quita todos los filtros del canal, también el del segmentador, así que el denominador sigue siendo todo el año: 42.6%. Sirve si la página habla de la empresa.
  4. ALLSELECTED quita solo el filtro de esta fila y conserva el del segmentador. El denominador es solo web, así que el porcentaje es 100.0%. Sirve cuando el lector quiere decir "porcentaje de lo que elegí".

ALL(orders[channel]) ignora el segmentador: el porcentaje es "de la empresa". ALLSELECTED lo conserva: el porcentaje es "de lo que elegí". Ninguno está mal; solo uno coincide con la frase que promete la página.

Medidas que siguen el clic

La necesidad opuesta es una medida que lea la selección. SELECTEDVALUE(orders[channel], "All channels") devuelve el único canal seleccionado, o el valor alternativo cuando no hay ninguno o hay varios. Usada en una medida da un título que dice lo que eligió el lector. Un Top 3 construido con TOPN y un ranking dentro de una medida también sigue al lector, mientras que un filtro Top N de un visual fija la cantidad en ese visual.

Dónde está en Power BI Desktop

Usa View → Selection pane y Bookmarks para guardar qué filtros, visibilidad y foco se conservan; un marcador registra el estado de la página, no los datos. Los tooltips vienen de Format → Visual → Tooltips, y un tooltip de página de informe es una página pequeña que recibe el punto señalado como filtro.

Errores comunes

"Un segmentador cambia el gráfico"

Un segmentador cambia los filtros, y la medida del gráfico se evalúa de nuevo. La distinción importa porque una medida puede decidir ignorarlo. Una tarjeta con las ventas totales de la empresa junto a un segmentador que no le hace nada no es un error si la medida usa ALL; es una decisión que conviene documentar.

"Hacer clic en una barra filtra todos los visuales de la página"

Solo los visuales cuya interacción está en filtrar, y solo aquellos cuya medida lee una tabla a la que llega el filtro. Un conteo de clientes no cambia al hacer clic en un canal, porque el filtro fluye de orders hacia order_items y nunca sube a customers. Revisa las flechas del modelo y Edit interactions antes de sospechar del DAX.

"Un porcentaje del total es un porcentaje; un segmentador no puede romperlo"

Un porcentaje con ALL en el denominador se mantiene tranquilo ante un segmentador, pero uno que olvidó quitar el filtro de la fila se vuelve 100.0% en cada fila. Cuál es el correcto depende de la frase que lee el lector. Prueba la medida sin nada seleccionado, con un valor y con todos antes de publicar la página.

Ponte a prueba

Una pregunta. Al responderla, la lección queda marcada en el mapa; nunca bloquea un nivel.

Share = DIVIDE([Sales], CALCULATE([Sales], ALLSELECTED(orders[channel]))) está en una matriz con channel en las filas. El lector elige solo web en el segmentador. ¿Qué muestra la fila de web?

Elige qué puede ejecutarse en este sitio. Puedes cambiarlo cuando quieras desde "Configurar cookies", al pie de cada página.