← Volver al blog
DAXPower BIALL

Liberando tus cálculos con ALL: cuándo usarla y cómo evitar trampas

ALL quita filtros de columnas o de tablas enteras y es la base de los totales generales y de los porcentajes del total. Mira cómo usarla y dónde puede afectar el rendimiento.

MA
Allen87Data Engineer
· 2 min de lectura
Equipo en una reunión frente a grandes paneles con gráficos de líneas, barras y circulares

¡Hablemos de algo liberador en este artículo! Veremos una de las herramientas más poderosas para manipular filtros y construir cálculos avanzados: la función ALL. Veremos cómo funciona, cuándo usarla y los cuidados necesarios para aplicarla con eficiencia.

¿Qué es la función ALL?

La función ALL se usa para quitar los filtros aplicados a una o más columnas o a una tabla entera. Se utiliza con frecuencia en cálculos que exigen ignorar filtros, como totales generales, subtotales o porcentajes del total, sin tener en cuenta filtros de fecha o categóricos, por ejemplo.

Sintaxis:

ALL(<Tabla o Columna(s)>)

Ejemplo práctico 1: total general ignorando filtros

Imagina que tienes una tabla de Ventas y necesitas saber el total vendido ignorando cualquier filtro aplicado. Puedes usar el código siguiente:

Total General =
SUMX(
    ALL(Ventas),
    Ventas[Valor]
)

En este caso, Total General devuelve la suma de todas las ventas, independientemente de los filtros aplicados en el informe.

Ejemplo práctico 2: escenario con múltiples filtros

Supón que quieres crear una medida que calcule la suma total de ventas, ignorando solo los filtros aplicados a la columna Categoría y manteniendo los demás filtros.

Suma Total (Ignorando Categoría) =
CALCULATE(
    SUM('Ventas'[Valor]),
    ALL('Productos'[Categoría])
)

En este caso, ALL('Productos'[Categoría]) quita los filtros únicamente de la columna Categoría.

Ejemplo práctico 3: porcentaje del total

Si quieres calcular el porcentaje de ventas de cada producto respecto al total general, la función ALL es útil para ignorar los filtros de contexto aplicados al producto.

Porcentaje del Total =
DIVIDE(
    SUM('Ventas'[Valor]),
    CALCULATE(
        SUM('Ventas'[Valor]),
        ALL('Productos')
    ),
    0
)

Aquí, ALL('Productos') quita los filtros aplicados a la tabla Productos, garantizando que el denominador sea el total de ventas de todos los productos.

Buenas prácticas para usar ALL

  • Planifica el contexto: Usa ALL cuando necesites ignorar filtros en cálculos globales. Ten siempre presente el impacto en el contexto del informe.
  • Combínala con CALCULATE: La función ALL se usa con frecuencia junto con CALCULATE para manipular contextos de filtro de forma eficiente.
  • Evita los excesos: No uses ALL de manera indiscriminada en tablas grandes, porque puede afectar el rendimiento del modelo.
  • Documenta tus medidas: Deja claro en el nombre de la medida o en comentarios por qué estás usando ALL. Esto ayuda al mantenimiento y a que otras personas lo entiendan.

Cuidados al usar ALL

  • Impacto en el rendimiento: En tablas grandes, el uso de ALL puede volver más lentos los cálculos, especialmente si se combina con funciones iterativas como SUMX o AVERAGEX.
  • Interpretación errónea de los resultados: Asegúrate de que los usuarios del informe entiendan que los cálculos que usan ALL ignoran filtros. Esto puede causar confusión en los análisis visuales.

Conclusión

La función ALL es una herramienta indispensable para crear cálculos avanzados en Power BI. Usada correctamente, permite construir análisis robustos que ignoran filtros y aportan nuevos insights a tus datos. Sin embargo, como toda función poderosa, debe usarse con planificación y cuidado para evitar impactos negativos en el rendimiento o en la claridad de la información.

MA
Allen87 Data Engineer & Data Analyst

Escribo sobre Power BI, ingeniería de datos e IA aplicada. Mira el perfil completo, los 66 dashboards de Power BI publicados y GitHub.