Función CALCULATE de Power Bi ⚙️
¡Domina CALCULATE, la función DAX más poderosa de Power BI! Aprende a crear medidas personalizadas y modificar contextos de filtro con ejemplos prácticos. Descarga las tablas desde el enlace y potencia tus reportes. 📊💻
Paso a Paso
Preparación: Importa los datos 📥
- En Power BI, ve a Inicio > Obtener Datos > Excel y selecciona el archivo.
- Carga las tablas: Ventas, Productos, y OtraTabla (independiente).
- Ventas y Productos están relacionadas por Código.
- OtraTabla no está relacionada, usada para mostrar comportamientos de CALCULATE.

- Verifica en Vista de Modelo: Confirma las relaciones entre Ventas y Productos. ¡Listo! 🎉

Paso 1: Crear una medida base con SUMX ➕
Calcula el total de ventas multiplicando Cantidad por PrecioUnitario.
- Ve a Inicio > Introducir Datos, crea una tabla llamada DAX y cárgala.

- En DAX, haz clic derecho > Nueva Medida.
- Nómbrala VentasTotales y escribe:
Ventas Totales =
SUMX(Venta,
Venta[Cantidad]*Venta[PrecioUnitario]
)
Explicación: Itera cada fila de Ventas, multiplica Cantidad por PrecioUnitario y suma los resultados.
- Presiona Enter, crea una Tarjeta en Vista de Informe y arrastra la medida. Resultado: ~310. 😎
- Opcional: Crea una Tabla con NombreProducto (de Productos), Cantidad, PrecioUnitario, y Ventas Totales para verificar (por ejemplo, 3 * 20 = 60).

Paso 2: Filtrar ventas de febrero con CALCULATE 📅
Usa CALCULATE para sumar solo las ventas de febrero 2024.
- En DAX, haz clic derecho > Nueva Medida.
- Nómbrala Ventas Febrero y escribe:
Ventas Febrero =
CALCULATE([Ventas Totales],
MONTH(Venta[Fecha])=2,
YEAR(Venta[Fecha])=2024
)
- Explicación:
- [VentasTotales]: La medida base (~310).
- MONTH(Ventas[Fecha]) = 2: Filtra febrero.
- YEAR(Ventas[Fecha]) = 2024: Filtra 2024.
- Ambos filtros deben cumplirse (como AND).
- Nota: Usa MONTH y YEAR para extraer mes/año de Fecha.
- Presiona Enter, crea una Tarjeta y arrastra la medida. Resultado: 180 (60 + 120, de febrero 2024). 🌟
- Validación: En Ventas, febrero tiene 2 filas: 3 * 20 = 60 y 6 * 20 = 120.

Paso 3: Filtrar ventas por categoría ropa con CALCULATE 👕
Suma las ventas de la categoría Ropa (de Productos).
- En DAX, haz clic derecho > Nueva Medida.
- Nómbrala VentasCategoriaRopa y escribe:
Ventas Cat Ropa =
CALCULATE([Ventas Totales],
Producto[Categoría]="Ropa"
)
Explicación: Aplica un filtro para sumar VentasTotales solo de productos con Categoría = «Ropa» (Camiseta y Jeans, códigos 1 y 2).
- Presiona Enter, crea una Tarjeta y arrastra la medida. Resultado: 100 (40 + 60). 🎯
Validación: Camiseta (2 * 20 = 40) + Jeans (3 * 20 = 60).

Paso 4: Filtrar ventas con más de 2 unidades con CALCULATE 📦
Suma las ventas con Cantidad > 2.
- In DAX, haz clic derecho > Nueva Medida.
- Nómbrala VentasMas2Unidades y escribe:
VentasMas2Unidades = CALCULATE([VentasTotales], Ventas[Cantidad] > 2)
Explicación: Filtra VentasTotales para filas donde Cantidad sea mayor a 2.
- Presiona Enter, crea una Tarjeta y arrastra la medida. Resultado: 110 (60 + 50). 😄
Validación: Filas con Cantidad > 2: 3 * 20 = 60 (Jeans) y 5 * 10 = 50 (Reloj).

Paso 5: Comportamiento de CALCULATE con tablas no relacionadas 📋
Analiza cómo CALCULATE actúa con OtraTabla (no relacionada).
- En DAX, haz clic derecho > Nueva Medida.
- Nómbrala TotalVentas y escribe:
Total Ventas =
SUM(Otra_Tabla[Ventas])
Explicación: Suma la columna Ventas de OtraTabla.
- Presiona Enter, crea una Tarjeta. Resultado: 1150.

- Crea otra medida, VentasElectrónica, y escribe:
Ventas Electrónica =
CALCULATE([Total Ventas],
Otra_Tabla[Categoría]="Electrónica"
)
Explicación: Filtra TotalVentas para la categoría Electrónica.
- Presiona Enter, crea una Tarjeta. Resultado: 700 (300 + 400, productos C y D).
- Crea una Tabla en Vista de Informe:
- Arrastra Categoría (de OtraTabla).
- Arrastra TotalVentas y VentasElectrónica.
- Observación:
- TotalVentas: Muestra 700 para Electrónica, 450 para Ropa.
- VentasElectrónica: Repite 700 en ambas filas (Electrónica y Ropa).
- Por qué: CALCULATE fuerza el filtro Electrónica, ignorando el contexto de la tabla (categoría Ropa). Esto es un comportamiento típico. 🚨

- Añade Producto (de OtraTabla) a la tabla:
- VentasElectrónica: Ahora muestra 300 y 400 solo para productos C y D (Electrónica), y vacío para A y B (Ropa).
- TotalVentas: Muestra valores por producto (100, 350, 300, 400).
- Por qué: El contexto de filtro por Producto refina los resultados, pero CALCULATE puede devolver vacíos si el filtro no coincide. 🔍
Cierre 🎬
¡Increíble! 🎉 Ahora dominas CALCULATE, la función estrella de DAX, para modificar contextos de filtro y crear medidas avanzadas. Practica con las tablas y explora sus comportamientos. ¿Dudas? Déjalas en los comentarios. ¡Nos vemos en el próximo capítulo! 👋
Notas Adicionales 📝
- Enlaces: Descarga el archivo y revisa el curso gratis en la descripción (módulo 9, capítulo 78). 😊
- Comportamiento de CALCULATE: Puede repetir valores o devolver vacíos según el contexto de filtro. Verifica tablas y relaciones en Vista de Modelo.
- Filtros múltiples: Usa operadores como && (AND), || (OR), o funciones como MONTH, YEAR.
- Errores: Si los resultados no coinciden, revisa formatos de fecha, relaciones, o nombres de columnas/medidas. 🔍
Módulo 9: Funciones DAX II
Descargar Tabla Calendario
Tabla Fechas .pbix
Tabla Productos, Ventas, Otra Tabla
ME INTEREZA pbi
porqué el resultado de calculate se refiere a precios unitarios si estamos uitlizando en la formula
la medida de ventas totales?