Objetivo
Crear KPIs que respondan correctamente a filtros.
Explicación
Una measure se evalúa en filter context. CALCULATE evalúa una expresión modificando filtros. Empieza por measures base y compón medidas más específicas. Power BI profesional empieza antes de elegir un gráfico. Primero se limpia la entrada, se define un modelo semántico coherente y se crean medidas verificables. Cada KPI del informe debe poder reconciliarse con los datos de origen o con una consulta independiente. DAX depende del contexto de filtro. Copiar fórmulas sin entenderlo lleva a medidas que parecen correctas en una tarjeta y cambian de forma inesperada al segmentar. La práctica exige validar medidas a distintos niveles de agregación. Para trabajar Measures, CALCULATE y contexto de forma profesional, no te quedes con el ejemplo: identifica la entrada, ejecuta el caso base, provoca al menos un caso incorrecto y compara el resultado con un control independiente. En este laboratorio el criterio de salida es concreto: El porcentaje cambia al filtrar país y nunca divide por cero gracias a DIVIDE. La verificación principal será: Compara totales con una suma directa del CSV. Si no puedes explicar por qué pasa esa comprobación, vuelve al paso anterior antes de continuar.
Contexto profesional
Power BI profesional empieza antes de elegir un gráfico. Primero se limpia la entrada, se define un modelo semántico coherente y se crean medidas verificables. Cada KPI del informe debe poder reconciliarse con los datos de origen o con una consulta independiente. DAX depende del contexto de filtro. Copiar fórmulas sin entenderlo lleva a medidas que parecen correctas en una tarjeta y cambian de forma inesperada al segmentar. La práctica exige validar medidas a distintos niveles de agregación.
Ejemplo real
Ventas Totales = SUM(Orders[amount])
Ventas Completadas = CALCULATE([Ventas Totales], Orders[status] = "COMPLETED")
Archivos o datos de entrada
- powerbi/orders.csv
- powerbi/customers.csv
- powerbi/calendar.csv
Práctica guiada
Crea ambas measures y muéstralas por país.
Laboratorio paso a paso
- Prepara el entorno y localiza los datos/archivos de entrada: powerbi/orders.csv, powerbi/customers.csv, powerbi/calendar.csv. Antes de modificar nada, anota el número de filas, columnas u objetos que esperas usar.
- Reproduce el ejemplo real de la lección y guarda la salida. No avances hasta poder explicar qué hace cada bloque relacionado con «Measures, CALCULATE y contexto».
- Ejecuta la práctica guiada: Crea ambas measures y muéstralas por país. Documenta el comando, consulta o acción exacta y el resultado obtenido.
- Resuelve el reto sin mirar la solución: Añade % Completado = DIVIDE([Ventas Completadas],[Ventas Totales]). Si falla, registra el mensaje de error y formula una hipótesis antes de cambiar código.
- Compara tu resultado con el criterio esperado: El porcentaje cambia al filtrar país y nunca divide por cero gracias a DIVIDE. Después ejecuta la comprobación: Compara totales con una suma directa del CSV.
- Provoca deliberadamente un caso problemático relacionado con este error frecuente: Crear una columna calculada “Ventas Totales” no responde como una measure al contexto.. Comprueba que sabes detectarlo y corregirlo.
Reto sin ayuda
Añade % Completado = DIVIDE([Ventas Completadas],[Ventas Totales]).
Resultado esperado
El porcentaje cambia al filtrar país y nunca divide por cero gracias a DIVIDE.
Cómo verificarlo
Compara totales con una suma directa del CSV.
Checklist de validación
- El resultado cumple: El porcentaje cambia al filtrar país y nunca divide por cero gracias a DIVIDE.
- Has ejecutado esta verificación y puedes explicar el resultado: Compara totales con una suma directa del CSV.
- Has probado al menos un caso límite o dato inválido y el comportamiento es explícito, no silencioso.
- Puedes repetir la práctica desde cero sin copiar la solución y dejar evidencia (consulta, commit, captura o salida de consola).
Pista específica
Usa DIVIDE en vez de / cuando el denominador puede ser 0.
Solución paso a paso
1) Empieza reproduciendo el caso base con los datos indicados. 2) Aplica esta estrategia específica: DIVIDE([Ventas Completadas],[Ventas Totales],0). 3) Usa como referencia técnica el ejemplo de la lección (Ventas Totales = SUM(Orders[amount]) Ventas Completadas = CALCULATE([Ventas Totales], Orders[status] = «COMPLETED»)). 4) Ejecuta la verificación: Compara totales con una suma directa del CSV. 5) Compara con el resultado esperado: El porcentaje cambia al filtrar país y nunca divide por cero gracias a DIVIDE. 6) Repite el reto cambiando un dato o condición para demostrar que entiendes el comportamiento y no has obtenido el resultado por casualidad. Si aparece el error «Crear una columna calculada “Ventas Totales” no responde como una measure al contexto.», corrige la causa antes de continuar; no ocultes el fallo ni cambies el resultado esperado para que la prueba pase.
Errores frecuentes
- Crear una columna calculada “Ventas Totales” no responde como una measure al contexto.
Qué debes recordar
Power BI debe separar preparación, modelo, medidas y presentación.
Preguntas de entrevista
- ¿Cómo validarías esta medida fuera del visual? Aplícalo concretamente a «Measures, CALCULATE y contexto».
- ¿Qué parte resolverías en Power Query/modelo y cuál en DAX? Explica qué evidencia enseñarías al revisor.
Siguiente paso
Pasarás a iteradores y time intelligence.
Recursos de esta lección
Preparando contenido…
Quiz de la lección
¿Qué función cambia filter context?