La función FILTRO en Microsoft Excel es una de las funciones de matriz dinámica más potentes. Permite filtrar un rango de datos basándose en los criterios que definas, devolviendo un conjunto de resultados que coincide con dichas condiciones. A diferencia de las herramientas de filtro manuales, esta función crea un nuevo rango de datos en la hoja de cálculo que se actualiza automáticamente si los datos de origen cambian.
Sintaxis
=FILTRO(matriz, include, [si_está_vacío])
La función FILTRO tiene los siguientes argumentos:
- matriz El rango o matriz de celdas que se desea filtrar. Obligatorio.
- include Una matriz booleana (compuesta por valores VERDADERO y FALSO) cuyo alto o ancho coincide con el de la matriz. Excel evaluará cada valor de esta matriz y, si es VERDADERO, devolverá la fila o columna correspondiente de la matriz original. Obligatorio.
- si_está_vacío El valor que se devolverá si el filtro no encuentra ninguna coincidencia. Opcional.
Ejemplos
| A | B | C | |
|---|---|---|---|
| 1 | Producto | Categoría | Ventas |
| 2 | Manzana | Fruta | 150 |
| 3 | Lechuga | Verdura | 80 |
| 4 | Naranja | Fruta | 200 |
| 5 | Brócoli | Verdura | 120 |
| 6 | Plátano | Fruta | 250 |
Ejemplo 1: Filtro básico
Para obtener una lista de todos los productos que pertenecen a la categoría «Fruta». La fórmula compara el rango B2:B6 con el texto «Fruta» y devuelve las filas de la tabla A2:C6 donde la condición es VERDADERA.
=FILTRO(A2:C6, B2:B6="Fruta")
Resultado: Se desbordará en un nuevo rango y mostrará las filas correspondientes a Manzana, Naranja y Plátano.
Ejemplo 2: Filtro con múltiples criterios (Lógica Y)
Para filtrar productos que sean de la categoría «Fruta» Y cuyas ventas superen los 180. Los criterios se multiplican (*) para crear una condición Y.
=FILTRO(A2:C6, (B2:B6="Fruta")*(C2:C6>180))
Resultado: Devolverá las filas de Naranja y Plátano, ya que ambas cumplen las dos condiciones.
Ejemplo 3: Filtro con múltiples criterios (Lógica O)
Para obtener una lista de productos que sean de la categoría «Verdura» O cuyas ventas superen los 220. Los criterios se suman (+) para crear una condición O.
=FILTRO(A2:C6, (B2:B6="Verdura")+(C2:C6>220))
Resultado: Devolverá las filas de Lechuga, Brócoli (por ser verdura) y Plátano (por tener ventas superiores a 220).
Ejemplo 4: Uso del argumento [si_está_vacío]
Si intentamos filtrar por una categoría que no existe, como «Lácteos», la función no encontrará resultados. Podemos especificar un mensaje personalizado.
=FILTRO(A2:C6, B2:B6="Lácteos", "No se encontraron productos")
Resultado: En lugar de un error, la celda mostrará el texto «No se encontraron productos».
Observaciones
La función FILTRO es una función de matriz dinámica. Esto significa que los resultados se «desbordarán» automáticamente en las celdas adyacentes vacías. Si el área de desbordamiento no está vacía, Excel mostrará un error.
Errores comunes
- #¡CALC! – Ocurre cuando no se encuentra ninguna coincidencia y no se ha proporcionado el argumento opcional [si_está_vacío].
- #¡DESBORDAMIENTO! – Sucede si el rango de celdas donde la fórmula debería devolver los resultados contiene otros datos. Despeja el área o mueve la fórmula a otro lugar.
- #¡VALOR! – Aparece si el argumento include contiene valores que no pueden evaluarse como booleanos (VERDADERO/FALSO) o si sus dimensiones no son compatibles con el argumento matriz.
Disponibilidad por versión de Excel
La función FILTRO está disponible en Microsoft 365, Excel 2021, y Excel para la Web.
Compatibilidad
| Software | Compatibilidad | Notas |
|---|---|---|
| Microsoft Excel | ✔️ | Disponible en Microsoft 365, Excel 2021 y versiones posteriores. |
| Google Sheets | ✔️ | Funciona de manera casi idéntica. |
| LibreOffice Calc | ✔️ | Compatible desde la versión 7.0. |
| OpenOffice Calc | ❌ | No soporta funciones de matriz dinámica. |
| WPS Office Spreadsheets | ✔️ | Generalmente compatible con funciones de matriz dinámica modernas. |
| Apple Numbers | ✔️ | Incluye una función FILTRAR con una funcionalidad similar. |
Funciones Relacionadas
- ORDENAR: Se puede anidar con FILTRO para ordenar los resultados filtrados. Por ejemplo:
=ORDENAR(FILTRO(...)). - UNICOS: Extrae valores únicos de un rango. Útil para crear listas de criterios para la función FILTRO.
- BUSCARX: Una función de búsqueda moderna que, aunque no filtra múltiples resultados, puede ser una alternativa para búsquedas condicionales simples.
- SECUENCIA: Genera secuencias de números, que pueden usarse creativamente dentro del argumento include de FILTRO para condiciones más complejas.
