🟢 Introducción
La función CALCULATE() es el corazón del lenguaje DAX.
Permite modificar el contexto de evaluación en el que se realiza un cálculo, abriendo la puerta a métricas avanzadas como filtros dinámicos, comparaciones por periodo o cálculos condicionales.
Si dominas CALCULATE(), puedes construir prácticamente cualquier medida compleja en Power BI. 🚀
🧠 Qué es / para qué sirve
CALCULATE() evalúa una expresión (por ejemplo, una medida o fórmula) en un contexto modificado por uno o más filtros.
Es la base de casi todas las medidas DAX, porque permite:
Aplicar condiciones a los cálculos (ej. ventas solo de cierto año). Cambiar o eliminar filtros actuales. Crear KPIs dinámicos según selección del usuario. Implementar lógica condicional avanzada en informes.
📘 En pocas palabras:
CALCULATE() cambia “dónde” y “cómo” se calcula algo.
🧩 Sintaxis
CALCULATE(<expresión>, <filtro1>, <filtro2>, ...)
Parámetros:
<expresión> → la medida o fórmula a evaluar. <filtro> → uno o varios filtros que alteran el contexto (ej. Year = 2025).
Ejemplo básico:
Ventas2025 = CALCULATE(SUM(Ventas[Monto]), Ventas[Año] = 2025)
💻 Ejemplos con código
1️⃣ Filtrar por categoría específica
Ventas_Tecnología = CALCULATE(SUM(Ventas[Monto]), Productos[Categoría] = "Tecnología")
2️⃣ Quitar filtros con ALL()
Ventas_Totales = CALCULATE(SUM(Ventas[Monto]), ALL(Productos))
Esto ignora los filtros activos sobre Productos, mostrando el total general.
3️⃣ Comparar periodos con SAMEPERIODLASTYEAR()
Ventas_AñoAnterior =CALCULATE( SUM(Ventas[Monto]), SAMEPERIODLASTYEAR(Calendario[Fecha]))
4️⃣ Filtrar dinámicamente según otra medida
Top_Ventas =CALCULATE( SUM(Ventas[Monto]), FILTER(Ventas, Ventas[Monto] > 1000))
🧱 Buenas prácticas
✅ Siempre asegúrate de tener una tabla de fechas marcada como calendario para cálculos de tiempo.
✅ Usa nombres descriptivos (ej. Ventas_AñoAnterior, Total_SinFiltro).
✅ Mantén los filtros simples y claros — evita combinar demasiadas funciones en un solo CALCULATE.
✅ Usa medidas intermedias para mejorar legibilidad y depuración.
✅ Recuerda: CALCULATE() solo funciona en medidas, no en columnas calculadas.
⚠️ Errores comunes
🚫 Intentar usar CALCULATE() dentro de una columna calculada → ❌ no cambia el contexto de fila.
🚫 Olvidar paréntesis o usar operadores = en lugar de funciones de filtro como FILTER().
🚫 No entender que CALCULATE() reemplaza filtros existentes, no los combina automáticamente.
🚫 Mezclar funciones de tiempo sin una tabla de calendario adecuada.
🔄 Variantes o alternativas
CALCULATETABLE() → devuelve una tabla en lugar de un valor único. FILTER() → se usa dentro de CALCULATE() para condiciones complejas. REMOVEFILTERS() → alternativa moderna a ALL() para limpiar filtros específicos. KEEPFILTERS() → agrega filtros sin reemplazar los existentes.
📚 Recursos oficiales
📘 Documentación oficial de CALCULATE
🧩 Mini práctica
Objetivo: Crear una medida que calcule las ventas del año actual y las compare con el año anterior.
1️⃣ Crea una tabla Calendario y márcala como tabla de fechas. si gustas puedes usar el siguiente archivo CSV para esta práctica
2️⃣ Define:
Ventas_Actual = SUM(Ventas[Monto])
3️⃣ Luego crea:
Ventas_AñoAnterior =CALCULATE( [Ventas_Actual], SAMEPERIODLASTYEAR(Calendario[Fecha]))
4️⃣ Finalmente:
Variación_% =DIVIDE([Ventas_Actual] - [Ventas_AñoAnterior],[Ventas_AñoAnterior])
5️⃣ Muestra los tres valores en una tarjeta visual y analiza los resultados 📊

✨ Conclusión:
CALCULATE() transforma cómo piensas los cálculos en DAX. Dominarla te permitirá construir modelos analíticos poderosos y flexibles dentro de Power BI.


Deja una respuesta