La función FILTER() se utiliza para recuperar una lista de filas de una tabla que cumplen con una condición específica. A diferencia de SELECT(), esta función siempre devuelve la columna Clave (Key) de la tabla.
Es muy utilizada dentro de expresiones LINKTOFILTEREDVIEW() o cuando necesitamos obtener referencias (Refs) a filas completas para usarlas en columnas virtuales o acciones.
Sintaxis de la expresión
FILTER("NombreTabla", [Condición])
Parámetros:
"NombreTabla": El nombre de la tabla o slice donde buscarás. Importante: Debe ser un texto entre comillas (ej:"Clientes").[Condición]: Una expresión Sí/No (Boolean) que determina qué filas se seleccionan.
Diferencia con SELECT:
Usa
FILTER("Tabla", ...) cuando quieras obtener las llaves primarias (IDs) de las filas.
Usa SELECT(Tabla[Columna], ...) cuando quieras obtener una lista de valores de cualquier otra columna específica (ej: Precios, Nombres, Correos).
Ejemplos Prácticos
-
Obtener todos los pedidos pendientes:
FILTER("Pedidos", [Estado] = "Pendiente")
Resultado: Una lista de IDs de pedidos (ej:{"a123", "b456"}) que están pendientes. -
Filtrar tareas asignadas al usuario actual:
FILTER("Tareas", [EmailAsignado] = USEREMAIL())
Uso común: Ideal para crear Vistas (Slices) o reportes personalizados por usuario. -
Enlazar a una vista filtrada (Acción):
LINKTOFILTEREDVIEW("Vista_Detalle_Clientes", [Provincia] = "Madrid")
Nota: Aunque aquí no se escribe "FILTER" explícitamente, la lógica interna funciona igual.