Resumen —
FILTERresponde a una pregunta distinta queBUSCARV. Una búsqueda devuelve una coincidencia;FILTERdevuelve todas las filas que cumplen tu condición y las derrama en un rango que se actualiza solo. Sintaxis:=FILTER(matriz; incluir; [si_vacío]). Tres cosas hacen tropezar a todos: si no hay coincidencias sale#CALC!salvo que pases el tercer argumento (=FILTER(data; cond; "Sin resultados")); para combinar condiciones se multiplican matrices para Y y se suman para O ((A=x)*(B=y)), nuncaY()/O(); y un rango de derrame bloqueado da#SPILL!. Disponible en Excel 365 y 2021+.
=FILTER(Sales, Region = "West")
=FILTER(Sales, (Region = "West") * (Amount > 1000), "Sin resultados")
Durante veinte años, sacar «todas las filas donde región = Oeste» exigía una
columna auxiliar, autofiltro y copiar-pegar — o una frágil fórmula matricial.
FILTER lo convierte en una expresión que se recalcula en cuanto cambian los
datos de origen. Pero como devuelve una matriz en vez de un solo valor, se
comporta de formas que una búsqueda nunca tuvo, y los mensajes de error también
son nuevos.
Nota: en una interfaz de Excel en español la función puede aparecer como FILTRAR. Equivalentes: UNIQUE = UNICOS, SORT = ORDENAR, SORTBY = ORDENARPOR. Las fórmulas de abajo usan los nombres en inglés; el comportamiento es idéntico.
Lo que aprenderás
- Por qué
FILTERes una consulta (devolver muchas) y una búsqueda es encontrar (devolver una) - El truco de Y / O: multiplicar y sumar matrices — no
Y()niO() - Por qué un resultado vacío da
#CALC!y el único argumento que lo arregla - Qué causa realmente
#SPILL!y cómo despejarlo - La «fórmula maestra»
=SORT(UNIQUE(FILTER(...)))para listas limpias y vivas
El modelo mental: FILTER es una consulta, no una búsqueda
Si has usado SQL, FILTER es la cláusula WHERE: dame cada fila donde esto sea
verdadero. BUSCARV y BUSCARX son lo contrario —
recorren de arriba abajo y se detienen en la primera coincidencia. Esa única
diferencia explica todas las sorpresas que da FILTER. Una búsqueda devuelve un
valor a una celda. FILTER devuelve un bloque de filas y las derrama
hacia abajo (y a la derecha) desde la celda donde escribes la fórmula. No
arrastras nada, no la envuelves en matricial: la escribes una vez y Excel ajusta
el tamaño de la salida a los datos.
' Una coincidencia, una celda:
=XLOOKUP("West", Region, Sales) ' la primera fila Oeste
' Cada coincidencia, derramada en un rango:
=FILTER(Sales, Region = "West") ' todas las filas Oeste, tantas como haya
Piensa el segundo argumento, incluir, como una columna de VERDADERO/FALSO de la
misma altura que tus datos. Region = "West" no compara una celda — compara
toda la columna Región a la vez y produce una matriz de VERDADERO/FALSO.
FILTER se queda con las filas cuyo valor es VERDADERO.
La regla que lo desbloquea todo: multiplica para Y, suma para O
Es lo más útil que hay que saber de FILTER, y casi todos los tutoriales lo
entierran. Tu instinto escribe Y(Region="West"; Amount>1000). No funciona —
Y() colapsa toda la matriz a un único VERDADERO/FALSO, así que FILTER devuelve
todo o nada. El argumento incluir tiene que seguir siendo una matriz. Así que
haces tú mismo el álgebra booleana:
' Y — multiplica las condiciones (VERDADERO*VERDADERO = 1, todo *FALSO = 0)
=FILTER(Sales, (Region = "West") * (Amount > 1000), "Sin resultados")
' O — suma las condiciones (FALSO+FALSO = 0, cualquier cosa > 0 se conserva)
=FILTER(Sales, (Region = "West") + (Region = "East"), "Sin resultados")
Multiplicar es Y lógico porque VERDADERO*VERDADERO = 1 y todo *FALSO = 0.
Sumar es O lógico porque una fila sobrevive si cualquiera de los términos es 1.
Envuelve cada condición en paréntesis — la comparación debe ocurrir antes que el
cálculo. Cuando lo interiorizas, cualquier criterio complejo es solo aritmética
con matrices de unos y ceros.
Por qué FILTER da #CALC! — y el argumento que lo evita
Este es el reporte número uno de «FILTER no funciona». Cuando ninguna fila
coincide, el resultado es una matriz vacía, y Excel no puede mostrar «nada» en
una celda — así que devuelve el error #CALC!. No es un fallo de tu lógica;
así se ve una matriz vacía. El arreglo es el tercer argumento opcional, si_vacío:
=FILTER(Sales, Region = "North") ' -> #CALC! si no hay filas Norte
=FILTER(Sales, Region = "North", "Sin resultados") ' -> "Sin resultados" (limpio)
=FILTER(Sales, Region = "North", "") ' -> en blanco, si lo prefieres
Haz de si_vacío un hábito en cada FILTER que alimente un panel u otra
fórmula. Un #CALC! inesperado se propaga — todo lo que referencie el derrame
hereda el error. Pasar si_vacío convierte «sin resultados» en un valor que
controlas en lugar de un error rojo que rompe el resto de la hoja.
#SPILL! es cosa de los vecinos, no de la fórmula
FILTER necesita celdas vacías donde derramar. Si algo — un valor perdido, una
celda combinada, una etiqueta sobrante — ocupa el rango que el resultado quiere,
Excel no puede colocar la matriz y devuelve #SPILL!. La fórmula está bien;
el destino está bloqueado. Haz clic en la celda y Excel resalta el rango de
derrame que intenta usar. Despeja lo que haya ahí y el resultado aparece. Dos
reglas prácticas: nunca pongas un FILTER justo encima de datos existentes, y no
llenes una columna entera (A:A) con algo que caería en una zona de derrame.
Referencia un resultado derramado con el operador
Como el tamaño de salida cambia con los datos, no lo referencias con un rango
fijo. Apuntas al derrame con el operador #: si tu FILTER está en E2,
entonces E2# significa «todo el rango derramado, del tamaño que tenga ahora
mismo». Así alimentas un gráfico, un COUNTA o una lista desplegable que crezca y
se encoja sola:
=COUNTA(E2#) ' cuántas filas devolvió FILTER, en vivo
=SUM(F2#) ' total de una columna de importes derramada
La fórmula maestra: SORT, UNIQUE y FILTER juntas
FILTER importa tanto porque se compone. Anídalo dentro de
UNIQUE y SORT y
obtienes una única fórmula que se mantiene sola y que casi todos arman en tres
pasos manuales:
=SORT(UNIQUE(FILTER(Customer, Region = "West")))
Léela de dentro afuera: FILTER saca los clientes del Oeste, UNIQUE quita
duplicados, SORT ordena alfabéticamente — y todo se vuelve a ejecutar en cuanto
se añade una venta. Es la fuente canónica de una lista desplegable dinámica o de
una lista de panel. Sin columnas auxiliares, sin botón de actualizar, sin VBA.
El criterio: cuándo FILTER sustituye a lo de siempre
Si te pillas añadiendo una columna auxiliar y activando el autofiltro solo para
copiar filas coincidentes, esa es la señal para usar FILTER. Si tecleas una
fórmula matricial {=...} para extraer un subconjunto, ese patrón lleva una
década obsoleto en 365. La excepción honesta: en hojas enormes FILTER recalcula
con todo el libro, así que para una extracción única de un millón de filas el
autofiltro o Power Query son más ligeros. Para todo lo que deba seguir vivo,
gana FILTER.
Cómo ayuda ExcelMaster
Mucho trabajo con FILTER es en realidad «constrúyeme la vista viva»: todas las
facturas impagadas y vencidas, ordenadas por importe, en su propia pestaña.
ExcelMaster escribe esa fórmula — incluida el álgebra booleana de Y/O y la
protección si_vacío — a partir de una descripción en lenguaje natural, la coloca
donde quieras y comprueba que el rango de derrame esté despejado. Tú mantienes la
lógica; él se ocupa de la mecánica de matrices que hace a FILTER quisquilloso a
mano.
Preguntas frecuentes
¿Por qué mi fórmula FILTER devuelve #CALC!?
Porque ninguna fila coincidió, y una matriz vacía no puede mostrarse en una celda.
Añade el tercer argumento, si_vacío: =FILTER(data; condición; "Sin resultados"). Reemplaza el error por un valor que tú eliges.
¿Cómo filtro por varios criterios en Excel?
Mantén el argumento incluir como matriz y haz álgebra booleana: multiplica las
condiciones para Y — (A=x)*(B=y) — y súmalas para O — (A=x)+(B=y). No uses
Y() ni O(); colapsan la matriz a un solo valor.
¿Qué causa el error #SPILL! con FILTER?
Algo bloquea las celdas donde el resultado quiere derramarse — un valor, una celda combinada o formato en el rango de derrame. Haz clic en la celda de la fórmula para ver el rango resaltado, despeja lo que haya y el resultado aparecerá.
¿Funciona FILTER en Excel 2016 o 2019?
No. FILTER y las demás funciones de matriz dinámica requieren Excel 365 o Excel
2021+. En 2016/2019 usa el autofiltro, una fórmula matricial o Power Query.
Probado en
Probado en: Excel 365 (Windows 11) — última verificación 16-06-2026.
Guías relacionadas: Excel UNIQUE · Excel SORT · XLOOKUP en Excel
