🟢 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] &gt; 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

¡Gracias por tu mensaje!

Me pondré en contacto tan rápido como pueda.

Descubre más desde Power Platform En Español

Suscríbete ahora para seguir leyendo y obtener acceso al archivo completo.

Seguir leyendo