Función FILTRO de Excel: filtrado dinámico con fórmulas

  • Comparte Isto
Michael Brown

Nesta lección rápida, aprenderás a filtrar en Excel dinámicamente con fórmulas. Exemplos para filtrar duplicados, celas que conteñen determinado texto, con varios criterios e moito máis.

Como adoita filtrar en Excel? Na súa maior parte, usando Filtro automático e en escenarios máis complexos con Filtro avanzado. Ao ser rápidos e poderosos, estes métodos teñen un inconveniente importante: non se actualizan automaticamente cando os teus datos cambian, o que significa que terías que limpar e filtrar de novo. A introdución da función FILTRO en Excel 365 convértese nunha alternativa moi esperada ás funcións convencionais. A diferenza delas, as fórmulas de Excel recalcúlanse automaticamente con cada cambio de folla de cálculo, polo que terás que configurar o teu filtro só unha vez!

    Función de FILTRO de Excel

    A función FILTRO en Excel úsase para filtrar un intervalo de datos en función dos criterios que especifique.

    A función pertence á categoría de funcións de matrices dinámicas. O resultado é unha matriz de valores que se derrama automaticamente nun intervalo de celas, a partir da cela onde se introduce unha fórmula.

    A sintaxe da función FILTRO é a seguinte:

    FILTRO(matriz, inclúe , [if_empty])

    Onde:

    • Matriz (obrigatorio): o intervalo ou matriz de valores que quere filtrar.
    • Incluír (obrigatorio): os criterios proporcionados como matriz booleana (valores TRUE e FALSE).

      O seuincluso centos de columnas, pode querer limitar os resultados a algunhas das máis importantes.

      Exemplo 1. Filtra algunhas columnas adxacentes

      Na situación na que queres que aparezan algunhas columnas veciñas en un resultado FILTER, inclúa só esas columnas en matriz porque é este argumento o que determina que columnas devolver.

      No exemplo de fórmula básica FILTER, supoñendo que desexa devolver as 2 primeiras columnas. ( Nome e Grupo ). Entón, proporciona A2:B13 para o argumento matriz :

      =FILTER(A2:B13, B2:B13=F1, "No results")

      Como resultado, obtemos unha lista de participantes do grupo obxectivo definido en F1:

      Exemplo 2. Filtrar columnas non adxacentes

      Para que a función FILTRO devolva columnas non contiguas, use este truco intelixente:

      1. Fai unha fórmula FILTRO coas condicións desexadas usando toda a táboa para matriz .
      2. Aniña a fórmula anterior dentro doutra función FILTRO. Para configurar a función "envoltura", use unha constante de matriz de valores TRUE e FALSE ou 1 e 0 para o argumento include , onde TRUE (1) marca as columnas a manter e FALSE (0) marca o columnas a excluír.

      Por exemplo, para devolver só Nomes (1ª columna) e Wins (3ª columna), estamos a usar {1, 0,1} ou {VERDADEIRO,FALSO,VERDADEIRO} para o argumento include da función FILTER externa:

      =FILTER(FILTER(A2:C13, B2:B13=F1), {1,0,1})

      Ou

      =FILTER(FILTER(A2:C13, B2:B13=F1), {TRUE,FALSE,TRUE})

      Como limitarnúmero de filas devoltas pola función FILTER

      Se a túa fórmula FILTER atopa moitos resultados, pero a túa folla de traballo ten espazo limitado e non podes eliminar os datos a continuación, podes limitar o número de filas que devolve a función FILTER .

      Vexamos como funciona un exemplo dunha fórmula sinxela que saca xogadores do grupo obxectivo en F1:

      =FILTER(A2:C13, B2:B13=F1)

      A fórmula anterior mostra todos os rexistros que atopa, 4 filas no noso caso. Pero supoña que só tes espazo para dous. Para emitir só as 2 primeiras filas atopadas, isto é o que cómpre facer:

      • Conecte a fórmula FILTER ao argumento matriz da función INDEX.
      • Para o argumento número_fila de INDEX, use unha constante de matriz vertical como {1;2}. Determina cantas filas devolver (2 no noso caso).
      • Para o argumento número_columna , use unha constante de matriz horizontal como {1,2,3}. Especifica que columnas devolver (as 3 primeiras columnas deste exemplo).
      • Para coidar posibles erros cando non se atopan datos que coincidan cos teus criterios, podes envolver a túa fórmula na función IFERROR.

    A fórmula completa toma esta forma:

    =IFERROR(INDEX(FILTER(A2:C13, B2:B13=F1), {1;2}, {1,2,3}), "No result")

    Ao traballar con táboas grandes, pode escribir as constantes da matriz manualmente. bastante engorroso. Non hai problema, a función SEQUENCE pode xerar os números secuenciais automaticamente:

    =IFERROR(INDEX(FILTER(A2:C13, B2:B13=F1), SEQUENCE(2), SEQUENCE(1, COLUMNS(A2:C13))), "No result")

    A primeira SEQUENCE xera unha matriz verticalque conteña tantos números secuenciais como se especifique no primeiro (e único) argumento. A segunda SECUENCIA usa a función COLUMNAS para contar o número de columnas do conxunto de datos e produce unha matriz horizontal equivalente.

    Consello. Para devolver datos de columnas específicas , non de todas as columnas, na constante de matriz horizontal que usa para o argumento número_columna de INDEX, inclúa só eses números específicos. Por exemplo, para extraer datos das columnas 1 e 3, use {1,3}.

    A función FILTRO de Excel non funciona

    Na situación na que a fórmula de FILTRO de Excel produce un erro, o máis probable é que sexa un dos seguintes:

    #CALC! error

    Prodúcese se o argumento opcional if_empty se omite e non se atopa ningún resultado que cumpra os criterios. O motivo é que actualmente Excel non admite matrices baleiras. Para evitar tales erros, asegúrese de definir sempre o valor if_empty nas súas fórmulas.

    #VALUE error

    Ocorre cando a matriz e include ten dimensións incompatibles.

    #N/A, #VALUE, etc.

    Poden producirse diferentes erros se algún valor do argumento include é un erro ou non se pode converter nun valor booleano.

    #NAME error

    Prodúcese ao tentar usar FILTRO nunha versión anterior de Excel. Lembra que é unha función nova, que só está dispoñible en Office 365 e Excel 2021.

    Ennovo Excel, prodúcese un erro #NAME se accidentalmente escribe mal o nome da función.

    #SPILL error

    A maioría das veces, este erro ocorre se unha ou máis celas do intervalo de derrame non están completamente en branco . Para solucionalo, só tes que limpar ou eliminar as celas que non estean baleiras. Para investigar e resolver outros casos, consulta #SPILL! erro en Excel: que significa e como solucionalo.

    #REF! erro

    Prodúcese cando se usa unha fórmula de FILTRO entre diferentes libros de traballo e o libro de orixe está pechado.

    É así como arquivar os datos en Excel de forma dinámica. Grazas por ler e espero verte no noso blog a vindeira semana!

    Descargar o libro de prácticas

    Filtrar en Excel con fórmulas (ficheiro .xlsx)

    a altura (cando os datos están en columnas) ou a anchura (cando os datos están en filas) debe ser igual á do argumento matriz .
  • If_empty (opcional): o valor a devolver cando ningunha entrada cumpra os criterios.
  • A función FILTRO só está dispoñible en Excel para Microsoft 365 e Excel 2021. En Excel 2019, Excel 2016 e versións anteriores, non é compatible.

    Fórmula básica de FILTRO de Excel

    Para comezar, imos comentar un par de casos moi sinxelos só para gañar comprender mellor como funciona unha fórmula de Excel para filtrar datos.

    Do seguinte conxunto de datos, supoñendo que quere extraer os rexistros cun valor específico na columna Grupo , digamos o grupo C. Para facelo, fornecemos a expresión B2:B13="C" ao argumento include , que producirá unha matriz booleana requirida, con TRUE correspondente aos valores "C".

    =FILTER(A2:C13, B2:B13="C", "No results")

    Na práctica, é máis conveniente introducir os criterios nunha cela separada, p. ex. F1 e use unha referencia de cela en lugar de codificar o valor directamente na fórmula:

    =FILTER(A2:C13, B2:B13=F1, "No results")

    A diferenza da función Filtro de Excel, a función non fai ningún cambio nos datos orixinais. Extrae os rexistros filtrados no chamado intervalo de derrame (E4:G7 na captura de pantalla a continuación), comezando na cela onde se introduce a fórmula:

    Se non hai rexistros coincida cos criterios especificados, a fórmula devolve o valor que introduciuArgumento if_baleiro , "Sen resultados" neste exemplo:

    Se prefire non devolver nada neste caso, entón proporciona unha cadea baleira ("") para o último argumento:

    =FILTER(A2:C13, B2:B13=F1, "")

    No caso de que os teus datos estean organizados horizontalmente de esquerda a dereita como se mostra na captura de pantalla a continuación, a función FILTRO tamén funcionará ben. Só asegúrate de definir intervalos axeitados para os argumentos matriz e include , de xeito que a matriz de orixe e a matriz booleana teñan o mesmo ancho:

    =FILTER(B2:M4, B3:M3= B7, "No results")

    Función de FILTRO de Excel - notas de uso

    Para filtrar eficazmente en Excel con fórmulas, aquí tes un par de puntos importantes para ter en conta:

    • A función FILTRO verte automaticamente os resultados vertical ou horizontalmente na folla de traballo, dependendo de como estean organizados os datos orixinais. Polo tanto, asegúrate de ter suficientes celas baleiras cara abaixo e á dereita, se non, obterás un erro #SPILL.
    • Os resultados da función FILTRO de Excel son dinámicos, o que significa que se actualizan automaticamente cando os valores en cambio o conxunto de datos orixinal. Non obstante, o intervalo proporcionado para o argumento matriz non se actualiza cando se engaden novas entradas aos datos de orixe. Se desexa que a matriz cambie o tamaño automaticamente, convértea nunha táboa de Excel e constrúe fórmulas con referencias estruturadas ou cree un intervalo de nomes dinámico.

    Como filtrar en Excel -exemplos de fórmulas

    Agora que xa sabes como funciona unha fórmula básica de filtro de Excel, é hora de obter información sobre como se pode ampliar para resolver tarefas máis complexas.

    Filtrar con varios criterios (E lóxica)

    Para filtrar datos con varios criterios, proporciona dúas ou máis expresións lóxicas para o argumento include :

    FILTER(matriz, ( rango1= criterio1) * ( intervalo2= criterio2), "Sen resultados")

    A operación de multiplicación procesa as matrices coa lóxica AND , garantindo que só se devolvan os rexistros que cumpran todos os criterios . Tecnicamente, funciona deste xeito:

    O resultado de cada expresión lóxica é unha matriz de valores booleanos, onde TRUE equivale a 1 e FALSE a 0. Entón, os elementos de todas as matrices nas mesmas posicións multiplícanse. . Dado que multiplicar por cero sempre dá cero, só os elementos para os que todos os criterios son VERDADEIROS entran na matriz resultante e, en consecuencia, só se extraen eses elementos.

    Os exemplos seguintes mostran esta fórmula xenérica en acción.

    Exemplo 1. Filtra varias columnas en Excel

    Ampliando un pouco máis a nosa fórmula básica de FILTRO de Excel, filtremos os datos por dúas columnas: Grupo (columna B) e Wins (columna C).

    Para iso, configuramos os seguintes criterios: escriba o nome do grupo obxectivo en F2 ( criterio1 ) e o número mínimo necesario degaña en F3 ( criterio2 ).

    Dado que os nosos datos fonte están en A2:C13 ( matriz ), os grupos están en B2:B13 ( rango1 ) e as vitorias están en C2:C13 ( rango2 ), a fórmula toma esta forma:

    =FILTER(A2:C13, (B2:B13=F2) * (C2:C13>=F3), "No results")

    Como resultado, obtén unha lista de xogadores no grupo A que conseguiron 2 ou máis vitorias:

    Exemplo 2. Filtrar datos entre datas

    En primeiro lugar, hai que ter en conta que non é posible para crear unha fórmula xenérica para filtrar por data en Excel. En diferentes situacións, terás que crear criterios de forma diferente, dependendo de se queres filtrar por unha data específica, por mes ou por ano. O propósito deste exemplo é demostrar o enfoque xeral.

    Aos nosos datos de mostra, engadimos unha columna máis que contén as datas da última vitoria (columna D). E agora, extraeremos as vitorias que se produciron nun período específico, digamos entre o 17 e o 31 de maio.

    Ten en conta que neste caso, ambos os criterios aplícanse ao mesmo intervalo:

    =FILTER(A2:D13, (D2:D13>=G2) * (D2:D13<=G3), "No results")

    Onde G2 e G3 son as datas para filtrar.

    Filtrar con varios criterios (lóxica OU)

    Para extraer datos en función da condición OR múltiple, tamén usas expresións lóxicas como se mostran nos exemplos anteriores, pero en lugar de multiplicalas, súmaas. Cando se suman as matrices booleanas devoltas polas expresións, a matriz resultante terá 0 para as entradas que non cumpran ningún criterio (é dicir, todas ascriterios son FALSO), e tales entradas serán filtradas. Extraeranse as entradas para as que polo menos un criterio é VERDADEIRO.

    Aquí está a fórmula xenérica para filtrar columnas coa lóxica OU:

    FILTRO(matriz, ( intervalo1= criterio1) + ( intervalo2= criterio2), "Sen resultados")

    A modo de exemplo, extraemos unha lista de xogadores que teñen este ou ese número de vitorias.

    Supoñendo que os datos de orixe están en A2:C13, as vitorias están en C2:C13 e os números de vitorias de interese están en F2 e F3, a fórmula sería a seguinte:

    =FILTER(A2:C13, (C2:C13=F2) + (C2:C13=F3), "No results")

    Como resultado, sabes que xogadores gañaron todos os xogos (4) e cales non gañaron ningún (0):

    Filtro baseado en varios criterios AND e OU

    Na situación na que necesites aplicar os dous tipos de criterios, recorda esta sinxela regra: une os criterios AND cun asterisco (*) e os criterios OU co signo máis signo (+).

    Por exemplo, para devolver unha lista de xogadores que teñen un determinado número de vitorias (F2) E pertencen ao grupo mencionado en E2 OU E3, constrúe a seguinte cadea de expresións:

    =FILTER(A2:C13, (C2:C13=F2) * ((B2:B13=E2) + (B2:B13=E3)), "No results")

    E obterás o seguinte resultado:

    Como filtrar duplicados en Excel

    Cando se traballa con follas de traballo enormes ou se combinan datos de diferentes fontes, adoita existir a posibilidade de que se colen algúns duplicados.

    Se estás buscando filtrar duplicados e extractoelementos únicos e, a continuación, utiliza a función ÚNICA tal e como se explica no tutorial ligado anterior.

    Se o teu obxectivo é filtrar duplicados , é dicir, extraer entradas que se producen máis dunha vez, utiliza a función FILTRO xunto con COUNTIFS.

    A idea é obter os recontos de ocorrencias de todos os rexistros e extraer aqueles maiores que 1. Para obter os recontos, proporciona o mesmo intervalo para cada intervalo_criterio / criterios par de COUNTIFS como este:

    FILTER( matriz, COUNTIFS( columna1, columna1, columna2, columna2)>1, "Sen resultados")

    Por exemplo, para filtrar as filas duplicadas dos datos en A2:C20 en función dos valores das 3 columnas, aquí tes a fórmula que debes usar:

    =FILTER(A2:C20, COUNTIFS(A2:A20, A2:A20, B2:B20, B2:B20, C2:C20, C2:C20)>1, "No results")

    Consello. Para filtrar os duplicados en función dos valores das columnas clave , inclúa só esas columnas específicas na función COUNTIFS.

    Como filtrar espazos en branco en Excel

    Unha fórmula para filtrar celas en branco é, de feito, unha variación da fórmula FILTRO de Excel con varios criterios AND. Neste caso, comprobamos se todas (ou determinadas) columnas teñen algún dato nelas e excluímos as filas onde polo menos unha cela está baleira. Para identificar celas non en branco, usa o operador "non igual a" () xunto cunha cadea baleira ("") como esta:

    FILTER(matriz, ( columna1 "") * ( columna2 =""), "Sen resultados")

    Cos datos de orixe en A2:C12, para filtrar filasque conteñan unha ou máis celas en branco, introdúcese a seguinte fórmula en E3:

    Filtra as celas que conteñan texto específico

    Para extraer celas que conteñan determinado texto, pode usar a función FILTRO xunto coa clásica Se a cela contén a fórmula:

    FILTRO(matriz, ISNUMBER(BUSCAR(" texto ", intervalo )), "Sen resultados")

    Así é como funciona:

    • A función BUSCAR busca unha cadea de texto especificada nun intervalo determinado e devolve un número (a posición do primeiro carácter) ou #VALOR! erro (non se atopou o texto).
    • A función ISNUMBER converte todos os números a VERDADEIRO e os erros a FALSO e pasa a matriz booleana resultante ao argumento include da función FILTER.

    Para este exemplo, engadimos os Apelidos dos xogadores en B2:B13, escribimos a parte do nome que queremos atopar en G2 e, a continuación, usamos a seguinte fórmula para filtra os datos:

    =FILTER(A2:D13, ISNUMBER(SEARCH(G2, B2:B13)), "No results")

    Como resultado, a fórmula recupera os dous apelidos que conteñen "han":

    Filtra e calcula (Suma, Media, Min, Max, etc.)

    Unha cousa interesante sobre a función FILTRO de Excel é que non só pode extraer valores con condicións, senón que tamén pode resumir os datos filtrados. Para iso, combina FILTRO con funcións de agregación como SUM, AVERAGE, COUNT, MAX ou MIN.

    Por exemplo, para agregar datos para un grupo específico en F1, utiliza o seguintefórmulas:

    Vitorias totais:

    =SUM(FILTER(C2:C13, B2:B13=F1, 0))

    Vitorias medias:

    =AVERAGE(FILTER(C2:C13, B2:B13=F1, 0))

    Vitorias máximas:

    =MAX(FILTER(C2:C13, B2:B13=F1, 0))

    Vitorias mínimas:

    =MIN(FILTER(C2:C13, B2:B13=F1, 0))

    Por favor, preste atención a que, en todas as fórmulas, usamos cero para o argumento if_empty , polo que as fórmulas serían devolve 0 se non se atopan valores que cumpran os criterios. Fornecer calquera texto como "Sen resultados" provocaría un erro #VALUE, que obviamente é o último que queres :)

    Fórmula de FILTRO que distingue entre maiúsculas e minúsculas

    Unha fórmula estándar de FILTRO de Excel non distingue entre maiúsculas e minúsculas, o que significa que non fai distinción entre minúsculas e maiúsculas. Para distinguir maiúsculas e minúsculas de texto, aniña a función EXACT no argumento include . Isto obrigará a FILTER a facer unha proba lóxica diferenciando entre maiúsculas e minúsculas:

    FILTER(matriz, EXACT( rango , criterios ), "Sen resultados")

    Supoñendo , tes os dous grupos A e a e queres extraer rexistros onde o grupo sexa a "a" minúscula. Para facelo, use a seguinte fórmula, onde A2:C13 son os datos de orixe e B2:B13 son grupos para filtrar:

    =FILTER(A2:C13, EXACT(B2:B13, "a"), "No results")

    Como é habitual, pode introducir o grupo de destino en unha cela predefinida, digamos F1, e use esa referencia de cela en lugar de texto codificado:

    =FILTER(A2:C13, EXACT(B2:B13, F1), "No results")

    Como FILTRAR datos e devolver só columnas específicas

    Na súa maioría, filtrar todas as columnas cunha única fórmula é o que queren os usuarios de Excel. Pero se a túa táboa de orixe contén decenas ou

    Michael Brown é un entusiasta da tecnoloxía dedicada á súa paixón por simplificar procesos complexos mediante ferramentas de software. Con máis dunha década de experiencia na industria tecnolóxica, perfeccionou as súas habilidades en Microsoft Excel e Outlook, así como en Follas de cálculo e Documentos de Google. O blog de Michael está dedicado a compartir o seu coñecemento e experiencia con outros, proporcionando consellos e titoriais fáciles de seguir para mellorar a produtividade e a eficiencia. Tanto se es un profesional experimentado como un principiante, o blog de Michael ofrece valiosas ideas e consellos prácticos para sacar o máximo proveito destas ferramentas de software esenciais.