🟢 Introducción
En Power BI, una de las tareas más comunes es crear medidas que ignoren ciertos filtros o que trabajen con totales globales para compararlos contra valores filtrados. Para lograrlo, la función ALL() es una herramienta fundamental dentro del arsenal de DAX.
Hoy aprenderás qué hace, cuándo usarla y cómo integrarla en tus medidas para llevar tu modelado al siguiente nivel.
🧠 Qué es / para qué sirve
ALL() devuelve una tabla que elimina todos los filtros aplicados sobre una columna o tabla específica.
Esto permite:
- Obtener totales generales sin contexto de filtro.
- Crear porcentajes sobre el total.
- Comparar valores filtrados vs. globales.
- Restaurar el contexto original de una tabla en una medida.
Es una de las funciones más usadas para cálculos avanzados de BI.
🧩 Sintaxis
ALL ( [ <table> | <column> ] )
Parámetros:
- table → Tabla completa de la cual se eliminarán los filtros.
- column → Columna específica cuyos filtros se eliminarán.
💻 Ejemplos con código
🔹 Ejemplo 1 — Total de ventas ignorando filtros
Ventas Totales ALL :=
CALCULATE(
SUM(Sales[Amount]),
ALL(Sales)
)
Esto devuelve el total global sin importar segmentaciones aplicadas.
🔹 Ejemplo 2 — Porcentaje del total
% del Total :=
DIVIDE(
SUM(Sales[Amount]),
CALCULATE(SUM(Sales[Amount]), ALL(Sales))
)
Ideal para mostrar qué porcentaje representa cada categoría del total.
🔹 Ejemplo 3 — Ignorar filtros de una sola columna
Ventas ALL Año :=
CALCULATE(
SUM(Sales[Amount]),
ALL(Calendar[Year])
)
Elimina solo el filtro del año, pero respeta los demás (mes, producto, región, etc.).
🧱 Buenas prácticas
✅ Úsala en combinación con CALCULATE para controlar el contexto.
✅ Prefiere ALL(column) cuando solo deseas eliminar un filtro específico.
✅ Para cálculos más complejos, combina ALL con funciones como FILTER o ALLEXCEPT.
✅ Documenta en qué casos usas ALL(), pues puede modificar fuertemente los contextos.
✅ Mantén medidas limpias y semánticas: separa medidas base de medidas derivadas.
⚠️ Errores comunes
🚫 Usar ALL() cuando realmente querías ignorar solo algunos filtros → mejor usar ALLEXCEPT().
🚫 Olvidar que ALL() puede destruir todo el contexto, generando resultados inesperados.
🚫 Crear medidas dependientes sin entender el contexto de filtro actual.
🚫 Usar ALL() en columnas que no pertenecen al modelo activo.
🔄 Variantes o alternativas
- ALLEXCEPT(): elimina filtros excepto los indicados.
- ALLSELECTED(): respeta filtros visibles aplicados por el usuario.
- REMOVEFILTERS(): alternativa moderna equivalente a ALL().
- KEEPFILTERS(): refuerza filtros en lugar de eliminarlos.
📚 Recursos oficiales (verificados)
🧩 Mini práctica
- Crea una medida llamada Ventas Totales ALL que use ALL(Sales).
- Crea una medida % del Total utilizando DIVIDE y ALL().
- Inserta una tabla visual con Categoría, Ventas y % del Total.
- Aplica filtros a la página (por región o fecha).
- Observa cómo % del Total se mantiene sobre el total global.
- Experimenta reemplazando ALL() por ALLSELECTED() para comparar comportamientos.

Deja un comentario