=FILTER(A2:C7,B2:B7="North") devuelve cada fila de A2:C7 cuya región en la columna B es North. En Excel en español la función se llama FILTRAR (FILTER en inglés), y la tabla también acepta las fórmulas escritas en español, con punto y coma (o con comas, como en México): =FILTRAR(A2:C7;B2:B7="North"). La escribes en una celda y las filas que coinciden se derraman en las celdas de abajo y de la derecha. Cambia una región de la columna B a North, o un North a South, y la lista se actualiza.
| A | B | C | D | E | F | G | |
|---|---|---|---|---|---|---|---|
| 1 | Name | Region | Sales | Name | Region | Sales | |
| 2 | Ann | North | 120 | Ann | North | 120 | |
| 3 | Ben | South | 80 | Cara | North | 200 | |
| 4 | Cara | North | 200 | Finn | North | 60 | |
| 5 | Dan | East | 150 | ||||
| 6 | Eve | South | 95 | ||||
| 7 | Finn | North | 60 |
=FILTRAR(A2:C7;B2:B7="North")Solo E2 contiene una fórmula. Las demás celdas llenas de E:G son su resultado derramado: haz clic en F3 y verás que pertenece a la fórmula de E2. Si se escribe algo en esa zona, FILTRAR muestra #SPILL! en lugar de las filas (consulta errores #SPILL!; la tabla muestra los nombres de error en inglés).
Sintaxis de FILTRAR
=FILTER(array, include, [if_empty])
array(matriz) es lo que quieres obtener: una columna, varias columnas o la tabla entera.include(incluir) es una condición con un VERDADERO o FALSO por cada fila dearray, comoB2:B7="North". Debe tener exactamente tantas filas comoarray. (Para filtrar columnas, dale un valor por columna.)if_empty(si_vacío) es lo que se muestra cuando ninguna fila coincide. Sin él, un resultado vacío es el error #CALC!.
FILTRAR necesita Excel 2021, Excel 2024 o Microsoft 365. En Excel 2019 y anteriores muestra #¿NOMBRE? (#NAME? en inglés), y ahí la forma de filtrar es el botón Filtro de la pestaña Datos. Google Sheets también tiene FILTER, y ahí cada condición también puede darse como un argumento aparte.
Las comparaciones de texto no distinguen mayúsculas: B2:B7="north" coincide con North. FILTRAR mantiene las filas en su orden original; ordenar el resultado es un paso aparte, que se muestra más abajo.
Filtrar por el valor de una celda
Escribir "North" en la fórmula obliga a editarla cada vez. Pon el valor en una celda y compara con la celda. Elige otra región en F1 y el resultado la sigue:
| A | B | C | D | E | F | G | |
|---|---|---|---|---|---|---|---|
| 1 | Name | Region | Sales | Region | North | ||
| 2 | Ann | North | 120 | ||||
| 3 | Ben | South | 80 | Ann | North | 120 | |
| 4 | Cara | North | 200 | Cara | North | 200 | |
| 5 | Dan | East | 150 | Finn | North | 60 | |
| 6 | Eve | South | 95 | ||||
| 7 | Finn | North | 60 |
=FILTRAR(A2:C7;B2:B7=F1;"No sales")West no tiene filas, así que al elegirla se muestra el texto de if_empty, No sales.
Los números funcionan igual. C2:C7>=F1 con 100 en F1 conserva cada fila con ventas de al menos 100, y C2:C7>F1 la convierte en estrictamente mayor que.
FILTRAR con varios criterios (Y)
Para conservar una fila solo cuando dos condiciones se cumplen a la vez, multiplícalas. Esto devuelve las filas de North con ventas de más de 100:
| A | B | C | D | E | F | G | |
|---|---|---|---|---|---|---|---|
| 1 | Name | Region | Sales | Name | Region | Sales | |
| 2 | Ann | North | 120 | Ann | North | 120 | |
| 3 | Ben | South | 80 | Cara | North | 200 | |
| 4 | Cara | North | 200 | ||||
| 5 | Dan | East | 150 | ||||
| 6 | Eve | South | 95 | ||||
| 7 | Finn | North | 60 |
=FILTRAR(A2:C7;(B2:B7="North")*(C2:C7>100))Ann (120) y Cara (200) pasan. Finn es de North pero su 60 no supera 100, así que queda fuera.
Por qué multiplicar: cada condición es una columna de VERDADERO y FALSO, y en aritmética VERDADERO cuenta como 1 y FALSO como 0. Una fila obtiene 1 solo cuando todos los factores son 1, así que * funciona como Y. Cada condición necesita sus propios paréntesis, y puedes encadenar tantas como quieras: (B2:B7="North")*(C2:C7>100)*(C2:C7<500).
Y() no funciona aquí. Y(B2:B7="North";C2:C7>100) reduce todo el rango a un único VERDADERO o FALSO en lugar de uno por fila, así que FILTRAR recibe la forma equivocada.
FILTRAR con O
Suma las condiciones para conservar una fila cuando al menos una se cumple. Esto devuelve las filas de North y East:
| A | B | C | D | E | F | G | |
|---|---|---|---|---|---|---|---|
| 1 | Name | Region | Sales | Name | Region | Sales | |
| 2 | Ann | North | 120 | Ann | North | 120 | |
| 3 | Ben | South | 80 | Cara | North | 200 | |
| 4 | Cara | North | 200 | Dan | East | 150 | |
| 5 | Dan | East | 150 | Finn | North | 60 | |
| 6 | Eve | South | 95 | ||||
| 7 | Finn | North | 60 |
=FILTRAR(A2:C7;(B2:B7="North")+(B2:B7="East"))Una fila que cumple las dos condiciones suma 2, y FILTRAR conserva cualquier fila cuyo resultado no sea 0, así que la suma funciona como O. Puedes mezclar las dos: ((B2:B7="North")+(B2:B7="East"))*(C2:C7>100) significa (North o East) y más de 100. Aquí devuelve a Ann, Cara y Dan.
FILTRAR devuelve #CALC! cuando nada coincide
Cuando ninguna fila pasa, FILTRAR no tiene nada que devolver. Sin un tercer argumento eso es el error #CALC!; con uno, obtienes tu propio texto:
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Name | Region | Sales | No if_empty | With if_empty | |
| 2 | Ann | North | 120 | #CALC! | No match | |
| 3 | Ben | South | 80 | |||
| 4 | Cara | North | 200 | |||
| 5 | Dan | East | 150 | |||
| 6 | Eve | South | 95 | |||
| 7 | Finn | North | 60 |
#CALC! El cálculo no tiene resultado, por ejemplo un FILTRAR que no encuentra nada.En Excel en español: =FILTRAR(A2:A7;B2:B7="West")E2 muestra #CALC! y F2 muestra No match. Cambia B3 de South a West y las dos fórmulas devuelven a Ben. Para no mostrar nada, usa una cadena vacía: =FILTRAR(A2:A7;B2:B7="West";"").
Esta tabla también muestra cómo filtrar una sola columna: array es A2:A7, así que solo vuelven los nombres. Para obtener algunas columnas de una tabla pero no todas, envuelve el resultado en ELEGIRCOLS (CHOOSECOLS en inglés): =ELEGIRCOLS(FILTRAR(A2:C7;B2:B7="North");1;3) devuelve nombres y ventas sin la región. ELEGIRCOLS necesita Microsoft 365 o Excel 2024.
Ordenar el resultado de FILTRAR
FILTRAR devuelve las filas en el orden en que aparecen en la tabla. Envuélvela en ORDENAR (SORT en inglés) para ordenar el resultado: aquí las filas de North ordenadas por ventas, de mayor a menor. El 3 es la columna del resultado por la que se ordena, y -1 significa descendente.
| A | B | C | D | E | F | G | |
|---|---|---|---|---|---|---|---|
| 1 | Name | Region | Sales | Name | Region | Sales | |
| 2 | Ann | North | 120 | Cara | North | 200 | |
| 3 | Ben | South | 80 | Ann | North | 120 | |
| 4 | Cara | North | 200 | Finn | North | 60 | |
| 5 | Dan | East | 150 | ||||
| 6 | Eve | South | 95 | ||||
| 7 | Finn | North | 60 |
=ORDENAR(FILTRAR(A2:C7;B2:B7="North");3;-1)Cara (200) va primero, luego Ann (120) y Finn (60). Para devolver solo las primeras filas, envuélvela una vez más en TOMAR (TAKE en inglés): =TOMAR(ORDENAR(FILTRAR(A2:C7;B2:B7="North");3;-1);2) conserva las dos primeras (TOMAR necesita Microsoft 365 o Excel 2024). ORDENAR y ORDENARPOR cubre las demás opciones de ordenación.
FILTRAR filas que contienen un texto
FILTRAR no tiene comodines, así que B2:B7="*th*" busca el texto literal *th*. Para conservar las filas cuyo nombre contiene un texto, prueba cada celda con HALLAR (SEARCH en inglés), que devuelve una posición cuando encuentra el texto y un error cuando no, y envuélvela en ESNUMERO:
| A | B | C | D | E | F | G | |
|---|---|---|---|---|---|---|---|
| 1 | Name | Region | Sales | Name | Region | Sales | |
| 2 | Ann | North | 120 | Ann | North | 120 | |
| 3 | Ben | South | 80 | Dan | East | 150 | |
| 4 | Cara | North | 200 | ||||
| 5 | Dan | East | 150 | ||||
| 6 | Eve | South | 95 | ||||
| 7 | Finn | North | 60 |
=FILTRAR(A2:C7;ESNUMERO(HALLAR("an";A2:A7)))Esto devuelve a Ann y Dan: HALLAR ignora las mayúsculas, así que "an" también coincide con el An de Ann. Usa ENCONTRAR en lugar de HALLAR para una coincidencia que distinga mayúsculas. En Excel en español la fórmula es =FILTRAR(A2:C7;ESNUMERO(HALLAR("an";A2:A7))).
Práctica: FILTRAR con dos condiciones
| A | B | C | D | E | F | G | |
|---|---|---|---|---|---|---|---|
| 1 | Name | Region | Sales | Name | Region | Sales | |
| 2 | Ann | North | 120 | ||||
| 3 | Ben | South | 80 | ||||
| 4 | Cara | North | 200 | ||||
| 5 | Dan | East | 150 | ||||
| 6 | Eve | South | 95 | ||||
| 7 | Finn | North | 60 |
Tu turno: En E2, devuelve las filas (las tres columnas) de los representantes de South con ventas de más de 85.
Práctica: FILTRAR por una celda, con un valor alternativo
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Name | Region | Sales | Region | North | |
| 2 | Ann | North | 120 | |||
| 3 | Ben | South | 80 | Names | ||
| 4 | Cara | North | 200 | |||
| 5 | Dan | East | 150 | |||
| 6 | Eve | South | 95 | |||
| 7 | Finn | North | 60 |
Tu turno: En F3, lista los nombres (solo la columna A) de los representantes de la región escrita en F1. Si no hay ninguno, muestra None.
Errores frecuentes con FILTRAR
- Rangos de distinto alto.
=FILTRAR(A2:C7;B2:B6="North")revisa 5 filas para una tabla de 6, y Excel devuelve #¡VALOR! (#VALUE! en inglés). Haz queincludeempiece y termine en las mismas filas quearray. - Ceros donde el origen está vacío. FILTRAR devuelve 0 para una celda vacía de
array. Cambia los vacíos por texto vacío antes de filtrar:=FILTRAR(SI(A2:C7="";"";A2:C7);B2:B7="North"). - Columnas enteras.
=FILTRAR(A:C;B:B="North")funciona, pero si la propia fórmula está en las columnas A a C se refiere a sí misma. Pon el resultado junto a la tabla, o usa un rango fijo como A2:C1000. - Comillas alrededor de los números.
C2:C7>"100"compara números con texto y no conserva nada. EscribeC2:C7>100. - Esperar el botón Filtro. FILTRAR copia las filas que coinciden a otro lugar y deja la tabla como está. Para ocultar filas en la propia tabla, usa Datos > Filtro.
Preguntas frecuentes
¿Cómo uso la función FILTRAR en Excel?
Dale las filas que quieres obtener y una condición para cada fila: =FILTRAR(A2:C7;B2:B7="North") devuelve cada fila de A2:C7 en la que la columna B es North. Escríbela en una celda; las filas que coinciden se derraman en las celdas de abajo y de la derecha.
¿Cómo uso FILTRAR con varios criterios en Excel?
Multiplica las condiciones para Y y súmalas para O: =FILTRAR(A2:C7;(B2:B7="North")*(C2:C7>100)) conserva las filas que cumplen las dos, =FILTRAR(A2:C7;(B2:B7="North")+(B2:B7="East")) conserva las que cumplen cualquiera. Cada condición necesita sus propios paréntesis.
¿Por qué FILTRAR devuelve #CALC!?
Porque ninguna fila coincidió y no diste un tercer argumento. Añade uno para mostrar otra cosa: =FILTRAR(A2:C7;B2:B7="West";"No match") muestra No match en lugar del error.
¿Qué versiones de Excel tienen la función FILTRAR?
Excel 2021, Excel 2024 y Microsoft 365, además de Excel para la web. Excel 2019 y anteriores no la tienen y muestran #¿NOMBRE?; ahí necesitas el botón Filtro de la pestaña Datos o una fórmula matricial con INDICE y K.ESIMO.MENOR.
¿Cómo devuelvo solo algunas columnas con FILTRAR?
Filtra solo las columnas que necesitas, o envuelve el resultado en ELEGIRCOLS (Microsoft 365 o Excel 2024): =ELEGIRCOLS(FILTRAR(A2:C7;B2:B7="North");1;3) devuelve la primera y la tercera columna de las filas que coinciden.