En este artículo hablamos de FILTER una función muy útil en Google Sheets, para filtrar dinámicamente
Aquí pueden ver este articulo en formato de video
Qué es FILTER
Como bien lo dice su nombre (en ingles), FILTER es una función que filtra.
A diferencia de la mayoría de funciones en Excel o Sheets, FILTER actúa como una «función arreglo»
Las funciones arreglo son aquellas cuyo resultado se extiende en varias celdas (tanto por filas como por columnas)
Otros ejemplos de función arreglo son:
- ={}
- ArrayFormula
- QUERY
- UNIQUE
- SPLIT
Esto quiere decir que al usar la función FILTER vamos a obtener un rango
Como se contruye FILTER
FILTER tiene mínimo dos argumentos: El rango y la condición.
Pero a diferencia de funciones como SI, el condicional se estructura de manera diferente: se estructura como una condición arreglo.
Miremos este ejemplo

Digamos que mi condición de filtro va a ser que el país sea Francia
Para entender como ingresamos la condición den FILTER, hagamos la condición manual como una fórmula arreglo
Mi primera condición seria A2 igual a Francia o
=A2="Francia"
Cuyo resultado será FALSO, porque A2 es España

Ahora vamos a «arrastrar» la formula con la ayuda de ArrayFormula, así:
=ArrayFormula(A2:A13="Francia")

Esa es la condición que queremos para nuestro FILTER, ya que va a evaluar todas las filas de nuestro arreglo
Construyamos entonces nuestro primer FILTER
El rango en este caso va a ser A2:A13
La condición va a ser la que ya construimos
Quedaría así entonces:
=filter(A2:A13;ArrayFormula(A2:A13="Francia"))
Y efectivamente me traería todas las celdas con el valor «Francia»

Dado que FILTER es una función arreglo, no necesito el «ArrayFormula» y lo podemos quitar
Quedaría así:
=filter(A2:A13;A2:A13="Francia")
Fíjense que si lo vemos así, es una fórmula «rara», y la condición se ve muy extraña, en comparación a otras funciones.
Por eso la explicación anterior, para saber de donde viene esa construcción «extraña» de la condición.
Filtrar tablas de mas de una columna
Ya conociendo el funcionamiento básico de FILTER, podemos filtrar rangos con más de una columna, simplemente ampliando el rango.
Ampliemos nuestra base de países, incluyendo ciudades, así:

Podemos usar nuestro FILTER ampliando el rango así:
=filter(A2:B13;A2:A13="Francia")

Filtrar una columna con condiciones de otra columna
En otras palabras y viendo nuestro ejemplo, podemos filtrar las ciudades de Francia, sin mostrar el país, así:
=filter(B2:B13;A2:A13="Francia")

Condicion numerica
Ahora incluyamos números en nuestras condiciones. Para esto vamos a incluir las poblaciones de las ciudades

Por ejemplo me gustaría filtrar las ciudades con más de un millón de habitantes
Nuestro FILTER sería:
=filter(A2:C13;C2:C13>1000000)

Dos o más condiciones
Ahora quiero juntar las dos condiciones anteriores. Quiero ver por ejemplo todas las ciudades de Italia con más de 1.000.000 de habitantes
Para esto simplemente agregamos un nuevo argumento con la nueva condición
=filter(A2:C13;C2:C13>1000000;A2:A13=»Italia»)

Y podemos redondear todo lo que hemos hablado, solo mostrando los nombres de las ciudades que cumplen con las condiciones
=filter(B2:B13;C2:C13>1000000;A2:A13="Italia")

Referencias en las condiciones
Podemos ir un paso más allá y volver las condiciones más flexibles. Que el usuario pueda escoger el país y el número de habitantes mínimo
Así quedaría nuestra función:
=filter(B2:B13;C2:C13>F2;A2:A13=F1)
Donde F2 es el número de habitantes y F1 el país
Y así se vería

Y si cambiamos el país y el número:

¡Cambia automáticamente!
Conclusion
Como pudimos ver, FILTER es una función sencilla, pero versátil y que una vez la aprendamos a usar de manera correcta, puede ser una gran adición a nuestro conocimiento de Sheets.
Además, desde 2020, esta función también funciona en Excel, entonces les servirá aún más
Como siempre cuéntenme sus dudas y obstáculos con esta maravillosa función.
Suscríbete para acceder al curso «Descubriendo el poder de Google Sheets» y empezar tu camino a la maestría de Sheets, Forms y Apps Script
Deja una respuesta