Función CALCULATE de Power BI

La función más versátil para análisis de datos y aplicación de filtros complejos

Introducción a CALCULATE

La función CALCULATE es considerada la más versátil de Power BI. Permite realizar cálculos complejos y aplicar una serie de filtros que van desde opciones sencillas hasta funciones inteligentes de tiempo y mucho más.

Sintaxis

CALCULATE(<expresión>, <filtro1>, <filtro2>, ...)

Donde:

  • expresión: Una medida DAX o una expresión de cálculo
  • filtros: Uno o varios filtros que modifican el contexto de la expresión

Fundamentos de DAX

¿Qué es una expresión?

Una expresión en Power BI es una combinación de funciones y operadores de diferentes tipos que sirven para realizar un cálculo. Forma parte de la biblioteca de funciones que permite compilar fórmulas en Power BI.

Diferencia entre medida y expresión

Expresión

SUM(Ventas)

Una expresión es un conjunto de funciones y operadores que realizan un cálculo. En este ejemplo, la función SUM suma todos los valores de la columna Ventas.

Medida

Total Ventas = SUM(Ventas)

Una medida es un contenedor nombrado que almacena una expresión. La medida "Total Ventas" contiene la expresión SUM(Ventas).

Importante: Una medida contiene una expresión, pero no todas las expresiones son medidas. Las medidas permiten reutilizar fórmulas en todo el informe.

Estructura de CALCULATE

La función CALCULATE tiene dos partes fundamentales:

Parte 1: Expresión

En esta parte se define qué queremos calcular. Se puede incluir:

  • Una medida existente
  • Una expresión completa con funciones y operadores

Restricción: No se puede utilizar una columna directamente como expresión.

Parte 2: Filtros

Aquí definimos bajo qué condiciones queremos realizar el cálculo:

  • Podemos incluir uno o varios filtros
  • Podemos utilizar columnas directamente en los filtros
  • Para usar medidas como filtros, necesitamos la función FILTER

Ejemplos Prácticos

Ejemplo 1: Creación de una medida básica

Primero, creamos una medida simple para sumar ventas:

Medida Suma = SUM(Ventas)

Esta medida suma todos los valores de la columna "Ventas" de la tabla.

Ejemplo 2: Cálculo de promedio ponderado

Creamos una medida para calcular el promedio ponderado de las notas:

Promedio = SUMX( 'Tabla3', 'Tabla3'[Nota1] * 0.30 + 'Tabla3'[Nota2] * 0.30 + 'Tabla3'[Nota3] * 0.40 )

Esta medida calcula el promedio ponderado donde Nota1 vale 30%, Nota2 vale 30% y Nota3 vale 40%.

Ejemplo 3: Filtrado de aprobados con CALCULATE

Usamos CALCULATE para filtrar solo los alumnos aprobados (promedio > 10):

Aprobados = CALCULATE( [Promedio], FILTER( 'Tabla3', [Promedio] > 10 ) )

Esta medida filtra el cálculo del promedio para mostrar solo los valores mayores a 10.

Ejemplo 4: Filtrado de desaprobados

Similar al ejemplo anterior, pero para desaprobados (promedio < 11):

Desaprobados = CALCULATE( [Promedio], FILTER( 'Tabla3', [Promedio] < 11 ) )
Ejemplo 5: Uso de IF para mostrar texto condicional

Combinamos IF con nuestro cálculo de promedio para mostrar texto:

Aprobados en texto = IF( [Promedio] > 10, [Promedio], "Desaprobó" )

Esta medida muestra el valor del promedio si es mayor a 10, o muestra "Desaprobó" en caso contrario.

Guía paso a paso para usar CALCULATE

1

Definir el objetivo del cálculo

Determina qué quieres calcular y bajo qué condiciones. Por ejemplo: "Quiero ver qué alumnos están aprobados" (promedio > 10).

2

Crear la medida base

Si es necesario, crea primero la medida que contiene el cálculo base. En nuestro ejemplo, creamos la medida "Promedio".

3

Crear la medida con CALCULATE

Utiliza CALCULATE pasando como primer argumento la medida base y después los filtros necesarios.

4

Usar FILTER para filtros basados en medidas

Cuando necesites filtrar por una medida (no una columna), utiliza la función FILTER dentro de CALCULATE.

5

Formatear el código para mejor legibilidad

Usa SHIFT+ENTER para formatear el código DAX en múltiples líneas y mejorar su legibilidad.

Buenas prácticas