Como filtrar datos dinámicamente con FILTER en Google Sheets

Funcion FILTER en Google Sheets

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.

38 comentarios en “Como filtrar datos dinámicamente con FILTER en Google Sheets”

  1. Buen dia como puedo cambiar esta formula en spreed Sheet

    =FILTRAR(datos,ESNUMERO(HALLAR(F1,datos[Producto]))*ESNUMERO(HALLAR(G1,datos[Cantidad])),”no existe”)

    Y de esta manera ya podría ir filtrando la información por el producto y la cantidad.

  2. Hola, muchas gracias por tus explicaciones. No se si me podrías orientar un poco en algo que necesito. Tengo una hoja con datos y necesito que en una nueva hoja filtrar unos datos y no sólo eso, que pueda trabajar con ellos y añadir datos. O sea, quiero que en otra hoja aparezcan ciertos clientes y el importe facturado, para en esta hoja poder añadir el detalle que compone este importe facturado.
    Ejemplo:

    CLIENTE Importe columna C Columna D Columna E
    Google 3.000 1000 500 1.500

    Las columnas Clientes e Importe los traigo de la hoja FACTURAS a la hoja donde usaré el filtro, que se llama DATOS. ¿Hay alguna opción para hacer esos datos del filtro FIJOS? Gracias por tu ayuda.

    Saludos

  3. Es posible combinar FILTER y QUERY en una misma formula?

    Quiero filtrar datos con una validacion de datos, pero quiero mostrar columnas especificas, no todas las de la base de datos

  4. Hola Juan: estoy buscando hacer un filtro de una tabla, que por ejempo tenga, en una columna paices, en la otra ciuades y la otra habitantes, querria filtrar de manera acumlativa, es decir, si elegi un pais entre varios y luego pueda solo filtrar las ciuadades de este pais y dentro de ellas las que tienen menos de 10000 habitantes. hice el filtro con parentesis y el signo +, pero eso me va sumando lineas.

    gracias

  5. Estoy tratando de filtrar los resultados que obtengo de un formulario de google. Gracias a tu explicación he comprendido correctamente el funcionamiento de la función Filter peeeero, no consigo hacer lo siguiente:

    Google Forms me da los resultados con el formato de fecha, por ejemplo, 22/08/2022 11:45:25 y yo quiero hacer un filtro de un intervalo de fechas, por ejemplo del 21/08/2022 al 25/08/2022.

    Utilizando “=FILTER(IntervaloPedidos; IntervaloFecha = D1)” funciona a la perfección si soy yo el que pone las fechas, sin las horas. Pero con las horas, no me devuelve resultados.

    He puesto en la primera condición la función “Izquierda” para que solo me lea los 10 primeros dígitos, pero me dice: “Error
    No se encuentran coincidencias en la evaluación FILTER.”

    ¿Sabrías como realizar esto que quiero hacer?

    Muchas gracias y enhorabuena por tu trabajo

  6. MÓNICA DA SILVA

    (FILTER(Compras!A:C;ISTEXT(Compras!B:B));(FILTER(AUDITORIA!A:E;ISTEXT(AUDITORIA!B:B))))

    Hola! Qué tal quiero colocar son Filter en una mis formula para unir dos hojas y me sale error de analisis de formula.
    Me puedes ayudar por favor

    La formula es la siguiente:
    =(FILTER(Compras!A:C;ISTEXT(Compras!B:B));(FILTER(AUDITORIA!A:E;ISTEXT(AUDITORIA!B:B))))

  7. Buenas tardes,
    Muchas gracias por sus lecciones.
    Aunque he leído mil veces el tutorial, no caigo con la respuesta correcta.
    Tengo una tabla en una hoja y en una hoja distinta quiero filtrar las respuestas distintas columnas, no consecutivas ,com la misma condición, y me da error.
    El ejemplo es el siguiente:
    =filter(Respostes!A2:AF166;Respostes!M2:M166=”Entramat 4: Càpsules de temàtiques educatives”;Respostes!S2:S166=”Entramat 4: Càpsules de temàtiques educatives”).
    De toda la tabla las columnas a filtrar son: M, S, y la condición es la misma: Entramat 4: Càpsules de temàtiques educatives.
    Quizás no el filtro la función a utilizar?
    Muchas gracias y un saludo
    Montserrat

    1. Lo que estas haciendo es una condición tipo O, para esto debes usar una condición Y. Esa se hace con el operador +
      Algo así:
      =filter(Respostes!A2:AF166;Respostes!M2:M166=»Entramat 4: Càpsules de temàtiques educatives»+Respostes!S2:S166=»Entramat 4: Càpsules de temàtiques educatives»).
      Cambia la ; por un mas
      Saludos!

  8. Hola compuedo hacer que de dos hojas diferentes me filtre los mismos valores lo que pasa es que es informacion de el dia anterior y de el dia actual pero el dia actual lo quiero estar actualizando sin afectar el dia anterior.

  9. Hola! Quisiera consultar como se pueden integrar o vincular datos filtrados, con celdas a las que se les llenan datos?. Para contextualizar intento que cada perfil evalue cursos, Resulta que mi filter me muestra los cursos asociado a ese perfil y ocupa las columnas a:g y de la h:k igreso las notas por fila, de acuerdo al curso que se evalua. Pero cada vez que borro una fila(curso) de la hoja origen de mi filter(que contiene todos los cursos y perfiles), los datos que se ingresaron, no se borran, se mantienen, pero quedan asociados a otro curso que no fue el que se evaluo. Entonces no se como hacer la correcta vinculacion de lo que muestra el filtro, con el llenado de celdas. Por favor si me pudieses ayudar, desde ya, gracias

  10. hola, una consultilla, en tu ejemplo, como se haría la funcion filter para que mostrara las filas de españa ó italia. Es decir, como meto un OR ahi?

    gracias!

  11. Hola! tengo una consulta por favor.
    ¿Se puede trabajar con comodines? (coincidencia por aproximación)

    Si por ejemplo en la celda F1 colocamos: Esp , para que muestre automáticamente todas las coincidencias al valor.

    Digamos algo así: =filter(A2:C13;(A2:A13=”*” & F1 & “*”)
    …imaginando que el comodín es el (*).

      1. Hola! podrias poner poner la linea completa? estoy intentando lo que indicaba Jorge, tener una lista de todas las Var_1, Var_2, Var_3…. (“Var_”&*) pero no lo consigo con Find…

  12. HOla! Tienes algún ejemplo donde se filtren columnas y filas en simultáneo, he leído en la ayuda de google sheets que se puede pero no muestran ahí mismo ejemplos concreto donde se aplique esto. Gracias!

  13. Hola Juan! Quiero crear una lista filtrada a partir de una base de datos. Si modifico algo en esta lista filtrada, que también se modifique en la base de datos, es decir, que no sea solo para visualizar datos si no para modificarlos más fácilmente por las categorías. Los controles de filtro de Sheets me parecen muy tediosos a diferencia de la función FILTER.

  14. Buen dia Juan

    Consulta, hay alguna forma que se active un filtro según el valor de una celda?
    ejemplo tengo una tabla de 51 items la cual en una columna están los datos a ver
    y en otra columna están los indicadores unos son (HS y otro NHS)
    entonces cuando en una celda a parte indique que es HS entonces la tabla solo se verán los datos HS que al lado se les alimentará con un dato

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Pin It on Pinterest

Share This