Curso de DAX para Power BI

Evaluación de contexto en CALCULATE con DAX

Curso de DAX para Power BI

Contenido del curso

Evaluación de contexto en CALCULATE con DAX

Resumen

La evaluación de contexto es la pieza que te falta para dominar CALCULATE en DAX y responder preguntas de negocio reales. Aquí verás cómo construir medidas que filtran ventas por marca, combinan condiciones múltiples y aíslan vendedores top usando Power BI.

¿Qué hace CALCULATE cuando cambia el contexto?

CALCULATE no devuelve un número fijo: devuelve una tabla que se recalcula según el contexto donde la coloques. Esa es la idea que cambia tu forma de pensar las medidas.

Para verlo en acción, crea una medida llamada Total venta Honda:

DAX Total venta Honda = CALCULATE([Total de venta], dim_vehiculo[marca] = "Honda")

Si llevas esa medida a un indicador (card), obtienes la venta total de Honda. Pero si la pones en una tabla junto a la columna marca, el resultado se itera por cada categoría de marca. El mismo CALCULATE responde distinto según dónde lo coloques, y ese comportamiento es la evaluación de contexto.

¿Qué es la evaluación de contexto en DAX? Es la forma en que una medida ajusta su resultado según los filtros y categorías presentes en el visual donde se calcula. Una misma medida puede mostrar un total agregado o un detalle por categoría.

¿Cómo combino varias marcas con la función IN?

Cuando necesitas filtrar por más de un valor, usa el operador IN dentro de CALCULATE para listar las opciones entre llaves.

La medida Total venta Honda Toyota se construye así:

DAX Total venta Honda Toyota = CALCULATE([Total de venta], dim_vehiculo[marca] IN {"Toyota", "Honda"})

Al llevarla a una tabla con la columna marca, el resultado se reduce solo a esas dos categorías. El contexto del visual filtra automáticamente lo que CALCULATE devuelve, y por eso ves únicamente las filas de Honda y Toyota.

¿Cuándo conviene usar IN en lugar de varios filtros?

Usa IN cuando tengas tres o más valores de una misma columna que deban cumplir la condición. Es más limpio que escribir múltiples expresiones con OR y se lee mejor cuando revisas la medida meses después.

¿Cómo filtro vendedores con ventas mayores a un umbral?

Los escenarios de negocio rara vez piden totales planos. Casi siempre necesitas acotar: top vendedores, marcas que superan cierta cifra, clientes activos. Aquí CALCULATE brilla cuando le pasas una tabla como filtro.

La medida Venta vendedor mayor a 30 millones se ve así:

DAX Venta vendedor mayor a 30 millones = CALCULATE( [Total de ventas], FILTER(dim_Vendedor, [Total de ventas] > 30000000) )

Al llevar la columna Vendedor y esta medida a una tabla, solo aparecen los vendedores que superan los 30 millones. En el ejemplo, Guillermina González lidera con 31 millones, y la tabla queda reducida a seis nombres que cumplen la regla.

¿Para qué sirve usar una tabla como filtro en CALCULATE? Te permite aplicar condiciones que dependen de medidas calculadas, no solo de columnas. Así puedes filtrar por totales, promedios o rankings que no existen como datos crudos.

¿Por qué CALCULATE devuelve una tabla y no un número?

Entender que CALCULATE produce una tabla intermedia te abre la puerta a cálculos avanzados. Esa tabla se modifica con filtros para acotar información, y luego se agrega al contexto del visual.

Cuando combinas esta lógica con iteradores, RANKING, TOP y la evaluación de contexto, puedes resolver preguntas como:

  • ¿Qué vendedores cumplen la cuota mínima de ventas?
  • ¿Qué marcas concentran la mayor facturación del trimestre?
  • ¿Qué categorías quedan por debajo del presupuesto?

Cada una se traduce en una medida con CALCULATE más un filtro que reduce la tabla resultante al subconjunto que importa.

Reto: marcas con ventas mayores a 50 millones

Ahora te toca a ti. Crea una tabla que muestre solo las marcas de vehículo cuyo total de ventas supere los 50 millones. Aplica lo que viste: CALCULATE más un filtro sobre la dimensión de marca, evaluando la medida de ventas totales.

Cuando tengas el resultado, compártelo en los comentarios con la comunidad y cuéntanos qué marcas pasaron el corte.