Función All y Filter con DAX 🔍
¡Aprende a usar ALL y FILTER en DAX para optimizar cálculos en Power BI! Descubre cómo eliminar o personalizar filtros para crear medidas avanzadas y visualizaciones eficientes. Descarga las tablas desde el enlace y practica. 💻📊
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 MedidasDAX y cárgala.
- En MedidasDAX, haz clic derecho > Nueva Medida.
- Nómbrala Ventas Totales 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. Resultado: 310. 😎
- Opcional: Crea una Tabla con NombreProducto (de Productos), Cantidad, PrecioUnitario, y VentasTotales (por ejemplo, Camiseta: 3 * 20 = 60).
Paso 2: Usar ALL con CALCULATE para ignorar filtros 🔄
Crea una medida que ignore filtros y muestre el total de ventas completo.
- En MedidasDAX, haz clic derecho > Nueva Medida.
- Nómbrala All Total Ventas y escribe:
All Total Ventas =
CALCULATE([Ventas Totales],
ALL(Venta)
)
- Explicación:
- [VentasTotales]: La medida base (310).
- ALL(Ventas): Elimina todos los filtros aplicados a la tabla Ventas, mostrando el total sin restricciones.
- Presiona Enter, crea una Tarjeta. Resultado: 310.
- Prueba con una Segmentación:
- Arrastra Categoría (de Productos) a una segmentación.
- Selecciona Accesorios: VentasTotales cambia a 50, pero VentasALL sigue mostrando 310.
- Por qué: ALL ignora el filtro de categoría, manteniendo el total completo. 🌟
Paso 3: Calcular porcentaje de ventas por categoría 📊
Usa ALL para calcular el % de ventas por categoría respecto al total.
- En MedidasDAX, haz clic derecho > Nueva Medida.
- Nómbrala % de Ventas y escribe:
% de Ventas =
DIVIDE([Ventas Totales],[All Total Ventas],0)
- Explicación:
- Numerador: [VentasTotales] (ventas por categoría, según filtros).
- Denominador: [VentasALL] (total fijo de 310, sin filtros).
- 0: Valor si hay error (por ejemplo, división por cero).
- Ve a Vista de Datos, selecciona la medida, y en Formato elige Porcentaje con 2 decimales.
- Presiona Enter, crea una Tabla:
- Arrastra Categoría (de Productos) y %Ventas.
- Validación: Ejemplo, Gorro= 50 / 310 ≈ 16.13%. 😄
Paso 4: Extraer el mes con una columna calculada 🗓️
Crea una columna para extraer el mes de la fecha.
- En la tabla Ventas, haz clic derecho > Nueva Columna.
- Nómbrala Mes y escribe:
Mes = MONTH(Ventas[Fecha])
Explicación: Extrae el número del mes (1 = Enero, 2 = Febrero, 3 = Marzo).
- Presiona Enter, verifica en Vista de Datos: Enero (1), Febrero (2), Marzo (3). 🚀
Paso 5: Ventas de enero con FILTER y CALCULATE 📅
Calcula las ventas solo de enero como base para comparaciones.
- En MedidasDAX, haz clic derecho > Nueva Medida.
- Nómbrala VentasEnero y escribe:
VentasEnero = CALCULATE([VentasTotales], FILTER(ALL(Ventas), Ventas[Mes] = 1))
Explicación:
- [VentasTotales]: La medida base.
- ALL(Ventas): Ignora filtros en Ventas.
- FILTER(…, Ventas[Mes] = 1): Aplica un filtro para incluir solo filas donde Mes = 1 (Enero).
- Nota: FILTER permite condiciones complejas, a diferencia de un filtro directo (que daría error aquí).
- Presiona Enter, crea una Tarjeta. Resultado: 80 (2 * 20 + 2 * 20).
- Validación: Enero tiene 2 filas: 40 + 40 = 80. 🎯
Paso 6: Porcentaje de ventas por mes respecto a enero 📈
Compara las ventas de cada mes con las de enero.
- En MedidasDAX, haz clic derecho > Nueva Medida.
- Nómbrala %VentasVsEnero y escribe:
%VentasVsEnero = DIVIDE([VentasTotales], [VentasEnero], 0)
- Explicación:
- Numerador: [VentasTotales] (ventas por mes, según filtros).
- Denominador: [VentasEnero] (ventas fijas de enero: 80).
- 0: Valor si hay error.
- Ve a Vista de Datos, selecciona la medida, y en Formato elige Porcentaje con 2 decimales.
- Presiona Enter, crea una Tabla:
- Arrastra Mes (de Ventas).
- En la flecha de Mes, selecciona No resumir para mostrar 1, 2, 3.
- Arrastra %VentasVsEnero.
- Resultado: Enero (100%), Febrero (225%), Marzo (62.50%).
- Validación: Febrero = 180 / 80 = 225%; Marzo = 50 / 80 = 62.50%. 😄
Cierre 🎬
¡Genial! 🎉 Ahora dominas ALL y FILTER en DAX para eliminar o personalizar filtros y crear medidas avanzadas. Practica con las tablas y experimenta con porcentajes. ¿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 79). 😊
- ALL: Úsalo para ignorar filtros y obtener totals fijos (por ejemplo, denominadores).
- FILTER: Ideal para condiciones complejas dentro de CALCULATE.
- Errores: Si los resultados no coinciden, verifica relaciones, formatos de fecha, o nombres de columnas/medidas. 🔍
Módulo 9: Funciones DAX II
Descargar Tabla Calendario
Tabla Fechas .pbix
Tabla Productos, Ventas, Otra Tabla
Responses