🟢 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

  1. Crea una medida llamada Ventas Totales ALL que use ALL(Sales).
  2. Crea una medida % del Total utilizando DIVIDE y ALL().
  3. Inserta una tabla visual con Categoría, Ventas y % del Total.
  4. Aplica filtros a la página (por región o fecha).
  5. Observa cómo % del Total se mantiene sobre el total global.
  6. Experimenta reemplazando ALL() por ALLSELECTED() para comparar comportamientos.

Deja un comentario

¡Gracias por tu mensaje!

Me pondré en contacto tan rápido como pueda.

Descubre más desde Power Platform En Español

Suscríbete ahora para seguir leyendo y obtener acceso al archivo completo.

Seguir leyendo