Artículo de  datadata

La función CALCULATE es el corazón de DAX (Data Analysis Expressions) en Power BI. Es la herramienta que permite modificar el contexto de filtro de una medida o expresión para obtener análisis más dinámicos y detallados.

Dominar esta función es esencial para cualquier persona que quiera llevar sus reportes de Power BI al siguiente nivel.

👇👇👇

¿Qué es CALCULATE en DAX?

CALCULATE evalúa una expresión en un contexto modificado por uno o varios filtros. Su sintaxis es:

  • <expression>: una medida o expresión que se quiere evaluar.
  • <filter>: uno o más filtros que modifican el contexto actual.

¿Para qué sirve CALCULATE?

Sirve para:

  • Cambiar el contexto de filtro de una medida.
  • Realizar cálculos condicionales.
  • Crear KPIs como ventas del año anterior, acumulados, porcentajes sobre totales, entre otros.
  • Aplicar lógica similar al "WHERE" en SQL pero dentro del contexto de evaluación en Power BI.

¿Qué es el Contexto de Filtro?

Si vienes de trabajar con Excel, seguro estás acostumbrado a usar filtros automáticos, tablas dinámicas o funciones como SUMAR.SI. En Power BI (y en DAX), el contexto de filtro funciona de forma parecida, pero con más versatilidad.

Cuando aplicas un filtro en una tabla dinámica, por ejemplo, eliges solo el año 2024 o un producto específico. Excel recalcula las cifras solo para los datos visibles. Eso es exactamente lo que hace Power BI con su contexto de filtro: modifica qué datos están “activos” para calcular una medida.

Ejemplo concreto:

Tienes una tabla con ventas de varios años. Si seleccionas "2024" en un segmentador en Power BI, el contexto de filtro ahora solo incluye los registros de 2024. Entonces, cualquier medida como:

Te devolverá automáticamente solo las ventas de 2024. Sin que tengas que hacer nada más.

¿Y dónde entra CALCULATE?

Aquí es donde entra en juego CALCULATE. Esta función te permite modificar ese filtro “automático” que viene de la visualización, y forzar un contexto diferente.

Por ejemplo:

Esto hace que la medida siempre calcule el total de ventas del año 2023, aunque el usuario haya filtrado otra cosa, como 2024 o 2022.

¿Qué hace CALCULATE internamente?

CALCULATE:

  1. Evalúa los filtros que le das.
  2. Modifica el contexto de filtro actual con esos nuevos filtros.
  3. Evalúa la expresión en ese nuevo contexto.

Este comportamiento es lo que lo hace tan poderoso.

Modificadores de contexto vs creación de nuevo contexto

A diferencia de funciones como FILTER, que crean un nuevo contexto de fila, CALCULATE modifica el contexto de filtro del cálculo. Esto le permite interactuar mejor con segmentadores, filtros de página y jerarquías.

Uso con funciones de inteligencia de tiempo

CALCULATE es imprescindible para cálculos de inteligencia temporal como:

Ventas del año anterior:

Ventas acumuladas año a la fecha (YTD):

Uso con múltiples filtros

Puedes agregar varios filtros dentro de CALCULATE:

Combinar CALCULATE con otras funciones

Una de las mejores prácticas es usar CALCULATE junto con:

FILTER:

ALL:

ALL elimina el filtro aplicado a la tabla 'Productos', permitiendo calcular el total general.

CALCULATE y funciones booleanas

Podemos usar expresiones lógicas directamente como filtros:

Pero esto no funciona directamente a menos que se use dentro de FILTER, porque CALCULATE requiere filtros válidos:

Buenas prácticas con CALCULATE

  • Siempre incluye una tabla de fechas bien configurada para que CALCULATE funcione con inteligencia temporal.
  • Evita usar columnas calculadas con CALCULATE salvo que sepas exactamente lo que estás haciendo. Es mucho más eficiente usar medidas.
  • Evita filtros implícitos ambiguos. Prefiere usar FILTER() si la lógica de filtrado es compleja.
  • Prueba tus filtros con visualizaciones pequeñas antes de combinarlos en una sola medida.

Errores comunes al usar CALCULATE

  • Olvidar que ciertas expresiones no son filtros válidos por sí solas.
  • Pensar que CALCULATE ejecuta filtros como un WHERE en SQL (no lo hace de forma directa, modifica el contexto de filtro).
  • Olvidar limpiar el contexto con ALL o REMOVEFILTERS cuando se quiere un total global.

Ejemplo de porcentaje del total por categoría

Esto calcula qué porcentaje representa una categoría sobre el total general de todas las categorías.

Aprender CALCULATE no es solo cuestión de sintaxis, sino de comprender el modelo de datos y cómo fluye el contexto en Power BI.

Domina esta función tan imprescindible con ejemplos prácticos en nuestro curso completo de Especialización DAX:

www.datdata.com/dax

 
 
Ver esta publicación en Instagram

Una publicación compartida por datdata | Power BI (@datdata)

 


 👉 También te recomendamos nuestros artículos de Cómo hacer storytelling con datos para impactar en negocios y Estadística aplicada en el análisis de datos 

🖱️ Visita nuestro  canal de YouTube para aprender Power BI, y síguenos en Instagram , Linkedin y Facebook  para aprender en tus tiempos libres.               

Te vemos en otro artículo 💪