¿Alguna vez hiciste un cálculo en Power BI y, de repente, te diste cuenta de que un filtro lo arruinó todo? Los filtros son geniales… hasta que dejan de serlo. Si quieres ignorar ciertos filtros (con clase y elegancia), REMOVEFILTERS puede ser tu mejor amigo.
¡Pero ojo! Igual que silenciar el grupo de la familia, quitar filtros puede ser liberador… o desastroso. Así que veamos cómo funciona este recurso y por qué puede ser tan útil.
¿Qué es REMOVEFILTERS y qué hace exactamente?
REMOVEFILTERS básicamente llega a Power BI y dice: "¿Ves esos filtros de ahí? Ignóralos todos."
Sirve para quitar los filtros de una o más columnas, o incluso de una tabla entera. No altera la estructura de los datos, solo descarta los filtros aplicados en el contexto de una medida.
¿Cómo se escribe en DAX?
REMOVEFILTERS([<tabla>|<columna>[, <columna> [, <columna> [, …]]]])
- Si pasas una tabla, ignora todos los filtros de esa tabla.
- Si pasas una columna específica, quita solo los filtros de esa columna.
- Si no pasas nada… quita TODO. Sí, todo. ¡Ten cuidado!
Ejemplos en la práctica
1. El clásico "Quiero el total de ventas sin importar la región"
Imagina una tabla de ventas (F_Ventas) con Fecha, Producto, Región y ValorVenta.
🔹 Sin REMOVEFILTERS (la suma obedece los filtros normales):
Total_Ventas := SUM(F_Ventas[ValorVenta])
Si el usuario filtra solo una región, solo ve las ventas de esa región.
🔹 Con REMOVEFILTERS (ignorando por completo el filtro de región):
Total_Ventas_Todas_Regiones =
CALCULATE(
SUM(F_Ventas[ValorVenta]),
REMOVEFILTERS(F_Ventas[Región])
)
Ahora la medida ignora solemnemente cualquier filtro de región y muestra el total general de ventas.
2. Ejemplo con dos columnas: el famoso "Ni tú, ni tú"
Supón que quieres un total de ventas que ignore cualquier filtro que alguien intente aplicar en Producto y Región.
💡 Aquí está tu escudo antifiltros:
Total_Sin_Producto_Region =
CALCULATE(
SUM(F_Ventas[ValorVenta]),
REMOVEFILTERS(F_Ventas[Producto], F_Ventas[Región])
)
🔹 ¿Qué pasa? Aunque el usuario intente filtrar solo un producto o una región, esta medida lo mira y le dice: "Ay, qué lindo... pero eso lo voy a ignorar, ¿vale?"
Resultado: siempre calcula el total general de ventas, sin importar Producto ni Región.
3. El "Soy imparable": quitando todos los filtros de la tabla
Si quieres que la suma ignore cualquier filtro aplicado a toda la tabla, usa:
Total_General =
CALCULATE(
SUM(F_Ventas[ValorVenta]),
REMOVEFILTERS(F_Ventas)
)
Esto puede ser útil para calcular, por ejemplo, el porcentaje de participación de un valor específico respecto al total de ventas.
4. Sin ninguna columna: el "Que se vaya todo el mundo"
Ahora, ¿y si quieres acabar con cualquier filtro existente y calcular el total general de ventas como si nadie hubiera filtrado nada?
💣 Simple: ¡dispara REMOVEFILTERS sin piedad!
Total_General =
CALCULATE(
SUM(F_Ventas[ValorVenta]),
REMOVEFILTERS()
)
🔹 ¿Qué pasa? Esto equivale a borrar toda la pizarra: ¡ningún filtro, de nada, en ningún lugar, sobrevive!
Si el usuario filtra por año, ciudad, categoría, día de la semana... no importa, esta medida siempre devuelve el total general.
⚠️ ¡Cuidado! Esto puede ser un desastre si alguien quería ver solo una parte de los datos. Si tu intención era ignorar solo algunos filtros y mantener otros, quizá ALLEXCEPT sea un mejor amigo (de esos que todavía respetan algunas reglas).
Buenas prácticas y trampas (o "Cómo no meterte en problemas usando REMOVEFILTERS")
✅ Usa REMOVEFILTERS con moderación. Es genial, pero quitar filtros a diestra y siniestra puede hacer que tu informe parezca roto.
✅ Combínalo con otras funciones. REMOVEFILTERS funciona muy bien con CALCULATE, ALL, ALLEXCEPT, entre otras.
🚨 Atención al impacto en los usuarios. Si quienes usan el informe esperan que los filtros funcionen y, de repente, tus medidas los ignoran, puede haber confusión. Deja bien claro cuándo y por qué se están quitando los filtros.
Conclusión
REMOVEFILTERS puede salvar tu informe cuando se usa bien, pero también puede convertirse en una pesadilla si se aplica sin criterio, así que ten mucho cuidado al usarla.