La solicitud

De Megan Collins, Jefa de Ventas

“La página de ventas tiene una matriz con categorías en las filas, una segmentación de Year en 2025 y una segmentación de Channel en web. La fila Lighting dice $156,003. Mi CFO me preguntó qué cubre exactamente ese número y me quedé helada. ¿Qué incluye?”

Tu objetivo

Elige la respuesta que describe exactamente qué líneas de pedido suma la medida Sales de la celda Lighting.

La matriz tiene products[category] en las filas, una segmentación 'Date'[Year] en 2025 y una segmentación orders[channel] en web. Sales = CALCULATE(SUM(order_items[line_total]), orders[status] = "completed"). ¿Qué líneas de pedido suma la celda Lighting?

Elige una respuesta y luego compruébala.

La lección

Cada número de un visual de Power BI es una medida evaluada bajo un conjunto de filtros. Ese conjunto es el contexto de filtro de la celda. Leerlo es la primera habilidad de DAX: antes de preguntarte si una fórmula es correcta, pregúntate qué está filtrando la celda.

De dónde vienen los filtros

Una celda recoge filtros de todo lo que la rodea:

  • Los encabezados del propio visual. Una fila de matriz para Lighting filtra products[category] a Lighting. Un encabezado de columna (un año arriba) añade su propio filtro.
  • Las segmentaciones de la página. Una segmentación de Year en 2025 filtra 'Date'[Year]. A menos que edites las interacciones, una segmentación filtra todos los visuales de la página.
  • El panel Filters. Filtros en este visual, en esta página y en todas las páginas.
  • El filtrado cruzado. Hacer clic en una barra de otro gráfico también filtra este.

Todos se combinan con AND. Un filtro de categoría y un filtro de año no compiten; la celda conserva solo las filas que pasan ambos. La fila Total es la misma medida con todos los filtros salvo el encabezado de fila, así que sigue respetando las segmentaciones.

Cómo llega un filtro a los números

Cada filtro cae en la tabla dueña de la columna y luego viaja por las relaciones del lado uno al lado varios. En el modelo de Harbor & Pine:

  • products filtra order_items (un producto, muchas líneas de pedido).
  • 'Date' filtra orders, y orders filtra order_items.
  • customers filtra orders, y a través de ella order_items.

Así, una segmentación sobre 'Date'[Year] llega a order_items en dos saltos. Lo contrario no es cierto: con relaciones de dirección única, un filtro sobre products no llega a orders. Por eso «pedidos por categoría» necesita DISTINCTCOUNT(order_items[order_id]) y no COUNTROWS(orders).

Dónde encaja CALCULATE

Una medida puede cambiar el contexto que recibe. La medida Sales de la tienda es

Sales = CALCULATE(SUM(order_items[line_total]), orders[status] = "completed")

CALCULATE toma el contexto de filtro de la celda, añade un filtro sobre orders[status] y evalúa la suma ahí. El resto de este capítulo trata de eso: añadir filtros, reemplazarlos y quitarlos para calcular porcentajes y totales.

En esta herramienta de práctica y en Power BI Desktop

Esta página ejecuta un motor DAX de práctica creado para este sitio, no Power BI. En Power BI Desktop puedes ver tú mismo el contexto de filtro de una celda: pasa el cursor sobre la celda para ver el tooltip, abre el panel Filters a la derecha para ver los filtros de visual, de página y de informe, y usa View → Performance analyzer → Copy query para ver los filtros exactos que envía el visual. En la cinta Format, Edit interactions muestra qué segmentaciones filtran qué visuales.

Errores comunes

  • Olvidar una segmentación en otra parte de la página. Igual filtra la matriz.
  • Suponer que los filtros fluyen en ambos sentidos. Un filtro de producto no llega a orders.
  • Leer el Total como la suma de las filas. Es la medida evaluada de nuevo, sin el filtro de fila. Para un SUM simple coinciden; para promedios, conteos distintos y razones, normalmente no.

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