Funció FILTRE d'Excel: filtratge dinàmic amb fórmules

  • Comparteix Això
Michael Brown

En aquesta lliçó ràpida, aprendràs a filtrar a Excel de manera dinàmica amb fórmules. Exemples per filtrar duplicats, cel·les que contenen text determinat, amb diversos criteris i molt més.

Com filtreu normalment a Excel? En la seva majoria, utilitzant el filtre automàtic i en escenaris més complexos amb el filtre avançat. Com que són ràpids i potents, aquests mètodes tenen un inconvenient important: no s'actualitzen automàticament quan les dades canvien, el que significa que hauríeu de netejar i filtrar de nou. La introducció de la funció FILTRE a Excel 365 es converteix en una alternativa molt esperada a les funcions convencionals. A diferència d'ells, les fórmules d'Excel es tornen a calcular automàticament amb cada canvi de full de treball, per la qual cosa hauràs de configurar el filtre només una vegada!

    Funció de FILTRE d'Excel

    La funció de FILTRE a Excel s'utilitza per filtrar un rang de dades en funció dels criteris que especifiqueu.

    La funció pertany a la categoria de funcions de matrius dinàmiques. El resultat és una matriu de valors que s'aboca automàticament a un rang de cel·les, començant des de la cel·la on introduïu una fórmula.

    La sintaxi de la funció FILTER és la següent:

    FILTER(matriu, inclou , [if_empty])

    On:

    • Matriu (obligatori): l'interval o la matriu de valors que voleu filtrar.
    • Inclou (obligatori): els criteris subministrats com a matriu booleà (valors TRUE i FALSE).

      Ésfins i tot centenars de columnes, és possible que vulgueu limitar els resultats a algunes de les més importants.

      Exemple 1. Filtreu algunes columnes adjacents

      En cas que vulgueu que apareguin algunes columnes veïnes a un resultat FILTRE, inclou només aquelles columnes a matriu perquè és aquest argument el que determina quines columnes cal tornar.

      A l'exemple de la fórmula bàsica de FILTRE, suposant que voleu retornar les 2 primeres columnes ( Nom i Grup ). Per tant, proporcioneu A2:B13 per a l'argument array :

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

      Com a resultat, obtenim una llista de participants del grup objectiu definit a F1:

      Exemple 2. Filtreu columnes no adjacents

      Per fer que la funció FILTER retorni columnes no contigües, feu servir aquest truc intel·ligent:

      1. Feu una fórmula de FILTRE amb les condicions desitjades utilitzant tota la taula per a matriu .
      2. Anuleu la fórmula anterior dins d'una altra funció de FILTRE. Per configurar la funció "embolcall", utilitzeu una constant de matriu de valors TRUE i FALSE o 1 i 0 per a l'argument include , on TRUE (1) marca les columnes que s'han de mantenir i FALSE (0) marca el columnes que s'han d'excloure.

      Per exemple, per tornar només Noms (1a columna) i Guanyes (3a columna), estem utilitzant {1, 0,1} o {TRUE,FALSE,TRUE} per a l'argument include de la funció exterior FILTER:

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

      O

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

      Com limitar elnombre de files retornades per la funció FILTER

      Si la vostra fórmula FILTER troba molts resultats, però el vostre full de treball té espai limitat i no podeu suprimir les dades següents, podeu limitar el nombre de files que retorna la funció FILTER .

      Anem a veure com funciona en un exemple de fórmula senzilla que treu jugadors del grup objectiu a F1:

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

      La fórmula anterior produeix tots els registres que troba, 4 files en el nostre cas. Però suposem que només tens espai per a dos. Per mostrar només les 2 primeres files trobades, això és el que heu de fer:

      • Connecteu la fórmula FILTER a l'argument matriu de la funció INDEX.
      • Per a l'argument row_num d'INDEX, utilitzeu una constant de matriu vertical com {1;2}. Determina quantes files cal tornar (2 en el nostre cas).
      • Per a l'argument núm_columna , utilitzeu una constant de matriu horitzontal com {1,2,3}. Especifica quines columnes cal retornar (les 3 primeres columnes d'aquest exemple).
      • Per tenir cura dels possibles errors quan no es troben dades que coincideixin amb els vostres criteris, podeu embolicar la fórmula a la funció IFERROR.

    La fórmula completa pren aquesta forma:

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

    Quan es treballa amb taules grans, es pot escriure manualment constants de matriu. força feixuc. Cap problema, la funció SEQUÈNCIA pot generar automàticament els números seqüencials:

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

    La primera SEQUÈNCIA genera una matriu verticalque contingui tants nombres seqüencials com s'especifica al primer (i únic) argument. La segona SEQUÈNCIA utilitza la funció COLUMNS per comptar el nombre de columnes del conjunt de dades i produeix una matriu horitzontal equivalent.

    Consell. Per retornar dades de columnes específiques , no totes les columnes, a la constant de matriu horitzontal que feu servir per a l'argument núm_columna d'INDEX, incloeu només aquests números específics. Per exemple, per extreure dades de la 1a i 3a columnes, utilitzeu {1,3}.

    La funció de FILTRE d'Excel no funciona

    En una situació en què la fórmula de FILTRE d'Excel produeix un error, el més probable és que sigui un dels següents:

    #CALC! error

    Es produeix si s'omet l'argument opcional if_empty i no es troben cap resultat que compleixi els criteris. El motiu és que actualment Excel no admet matrius buides. Per evitar aquests errors, assegureu-vos de definir sempre el valor if_empty a les vostres fórmules.

    #VALUE error

    Es produeix quan la matriu i include té dimensions incompatibles.

    #N/A, #VALUE, etc.

    Poden produir-se errors diferents si algun valor de l'argument include és un error o no es pot convertir en un valor booleà.

    #NAME error

    Es produeix quan s'intenta utilitzar FILTER en una versió anterior d'Excel. Recordeu que és una funció nova, que només està disponible a Office 365 i Excel 2021.

    Ennou Excel, es produeix un error #NAME si s'escriu accidentalment el nom de la funció.

    #SPILL error

    Molt sovint, aquest error es produeix si una o més cel·les de l'interval de vessament no estan completament en blanc. . Per solucionar-ho, només cal esborrar o eliminar les cel·les no buides. Per investigar i resoldre altres casos, consulteu #SPILL! error a Excel: què significa i com solucionar-ho.

    #REF! error

    Es produeix quan s'utilitza una fórmula FILTER entre diferents llibres de treball i es tanca el llibre d'origen.

    Així és com s'arxiva les dades a Excel de manera dinàmica. Us agraeixo la lectura i esperem veure-us al nostre blog la setmana vinent!

    Descarregueu el quadern de pràctiques

    Filtreu a Excel amb fórmules (fitxer .xlsx)

    l'alçada (quan les dades estan en columnes) o l'amplada (quan les dades estan en files) han de ser iguals a la de l'argument matriu .
  • If_empty (opcional): el valor a retornar quan no hi ha cap entrada que compleixi els criteris.
  • La funció FILTRE només està disponible a Excel per a Microsoft 365 i Excel 2021. A Excel 2019, Excel 2016 i versions anteriors, no és compatible.

    Fórmula bàsica del FILTRE d'Excel

    Per començar, analitzem un parell de casos molt senzills només per obtenir entendre millor com funciona una fórmula d'Excel per filtrar dades.

    A partir del conjunt de dades següent, suposant que voleu extreure els registres amb un valor específic a la columna Grup , per exemple, el grup C. Per fer-ho, proporcionem l'expressió B2:B13="C" a l'argument include , que produirà una matriu booleana necessària, amb TRUE corresponent als valors "C".

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

    A la pràctica, és més convenient introduir els criteris en una cel·la separada, p. F1 i utilitzeu una referència de cel·la en lloc de codificar el valor directament a la fórmula:

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

    A diferència de la funció Filtre d'Excel, la funció no fa cap canvi a les dades originals. Extreu els registres filtrats a l'anomenat rang de vessaments (E4:G7 a la captura de pantalla següent), començant a la cel·la on s'introdueix la fórmula:

    Si no hi ha registres coincideix amb els criteris especificats, la fórmula retorna el valor que heu posat aArgument if_empty , "No hi ha resultats" en aquest exemple:

    Si preferiu retornar res en aquest cas, aleshores proporcioneu una cadena buida ("") per a l'últim argument:

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

    En cas que les vostres dades estiguin organitzades horitzontalment d'esquerra a dreta com es mostra a la captura de pantalla següent, la funció FILTRE també funcionarà bé. Només assegureu-vos de definir els intervals adequats per als arguments array i include , de manera que la matriu font i la matriu booleana tinguin la mateixa amplada:

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

    Funció d'Excel FILTER: notes d'ús

    Per filtrar eficaçment a Excel amb fórmules, aquí teniu un parell de punts importants que cal tenir en compte:

    • La funció FILTRE vessar automàticament els resultats verticalment o horitzontalment al full de treball, depenent de com estiguin organitzades les dades originals. Per tant, assegureu-vos que sempre teniu prou cel·les buides cap avall i cap a la dreta, en cas contrari, obtindreu un error #SPILL.
    • Els resultats de la funció FILTRE d'Excel són dinàmics, és a dir, s'actualitzen automàticament quan els valors en canvia el conjunt de dades original. Tanmateix, l'interval proporcionat per a l'argument array no s'actualitza quan s'afegeixen noves entrades a les dades d'origen. Si voleu que la matriu canviï la mida automàticament, convertiu-la a una taula d'Excel i creeu fórmules amb referències estructurades, o creeu un rang de nom dinàmic.

    Com filtrar a Excel. -exemples de fórmules

    Ara que ja sabeu com funciona una fórmula bàsica de filtre d'Excel, és hora d'obtenir informació sobre com es pot ampliar per resoldre tasques més complexes.

    Filtreu amb diversos criteris (I lògica)

    Per filtrar dades amb diversos criteris, proporcioneu dues o més expressions lògiques per a l'argument inclou :

    FILTER(matriu, ( interval1= criteri1) * ( interval2= criteri2), "Sense resultats")

    L'operació de multiplicació processa les matrius amb la lògica AND , assegurant que només es retornin els registres que compleixin tots els criteris . Tècnicament, funciona d'aquesta manera:

    El resultat de cada expressió lògica és una matriu de valors booleans, on TRUE equival a 1 i FALSE a 0. Aleshores, es multipliquen els elements de totes les matrius en les mateixes posicions. . Com que la multiplicació per zero sempre dóna zero, només els elements per als quals tots els criteris són VERITATS entren a la matriu resultant i, en conseqüència, només s'extreuen aquests elements.

    Els exemples següents mostren aquesta fórmula genèrica en acció.

    Exemple 1. Filtreu diverses columnes a Excel

    Ampliant una mica més la nostra fórmula bàsica de FILTRE d'Excel, filtrem les dades per dues columnes: Grup (columna B) i Guanyes (columna C).

    Per a això, establim els criteris següents: introduïu el nom del grup objectiu a F2 ( criteri1 ) i el nombre mínim requerit deguanya a F3 ( criteri2 ).

    Tenint que les nostres dades font es troben a A2:C13 ( matriu ), els grups es troben a B2:B13 ( interval1 ) i les victòries es troben a C2:C13 ( rang2 ), la fórmula pren aquesta forma:

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

    Com a resultat, obteniu una llista de jugadors al grup A que hagin aconseguit 2 o més victòries:

    Exemple 2. Filtrar dades entre dates

    En primer lloc, cal tenir en compte que no és possible per crear una fórmula genèrica per filtrar per data a Excel. En diferents situacions, haureu de crear criteris de manera diferent, depenent de si voleu filtrar per una data concreta, per mes o per any. L'objectiu d'aquest exemple és demostrar l'enfocament general.

    A les nostres dades de mostra, afegim una columna més que conté les dates de l'última victòria (columna D). I ara, extreurem les victòries que es van produir en un període concret, per exemple entre el 17 de maig i el 31 de maig.

    Tingueu en compte que, en aquest cas, tots dos criteris s'apliquen al mateix rang:

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

    On G2 i G3 són les dates per filtrar.

    Filtre amb criteris múltiples (lògica OR)

    Per extreure dades basat en una condició OR múltiple, també feu servir expressions lògiques com es mostra als exemples anteriors, però en comptes de multiplicar, les sumeu. Quan es sumen les matrius booleanes retornades per les expressions, la matriu resultant tindrà 0 per a les entrades que no compleixen cap criteri (és a dir, tots elsels criteris són FALS), i aquestes entrades es filtraran. S'extreuran les entrades per a les quals almenys un criteri sigui TRUE.

    Aquí hi ha la fórmula genèrica per filtrar columnes amb la lògica OR:

    FILTER(matriu, ( interval1= criteri1) + ( interval2= criteri2), "Sense resultats")

    Per exemple, extreu una llista de jugadors que tenen aquest o aquest nombre de victòries.

    Suposant que les dades d'origen es troben a A2:C13, les victòries són a C2:C13 i els números de victòries d'interès són a F2 i F3, la fórmula seria la següent:

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

    Com a resultat, saps quins jugadors han guanyat tots els jocs (4) i quins no n'han guanyat cap (0):

    Filtreu en funció de criteris AND múltiples i OR

    En cas que necessiteu aplicar els dos tipus de criteris, recordeu aquesta senzilla regla: uniu els criteris AND amb asterisc (*) i els criteris OR amb el signe més signe (+).

    Per exemple, per tornar una llista de jugadors que tenen un nombre determinat de victòries (F2) I pertanyen al grup esmentat a E2 O E3, construïu la següent cadena de expressions:

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

    I obtindreu el següent resultat:

    Com filtrar duplicats a Excel

    Quan es treballa amb fulls de treball grans o es combinen dades de diferents fonts, sovint hi ha la possibilitat que s'hi introdueixin alguns duplicats.

    Si voleu filtrar duplicats i extracteelements únics i, a continuació, utilitzeu la funció ÚNIC com s'explica al tutorial enllaçat anterior.

    Si el vostre objectiu és filtrar els duplicats , és a dir, extreure les entrades que es produeixen més d'una vegada, feu servir la funció FILTRAR juntament amb COUNTIFS.

    La idea és obtenir els recomptes d'ocurrències de tots els registres i extreure els que són superiors a 1. Per obtenir els recomptes, proporcioneu el mateix interval per a cada interval_criteri / criteri parell de COUNTIFS com aquest:

    FILTER( matriu, COUNTIFS( columna1, columna1, columna2, column2)>1, "Sense resultats")

    Per exemple, per filtrar les files duplicades de les dades d'A2:C20 en funció dels valors de les 3 columnes, aquí teniu la fórmula que cal utilitzar:

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

    Consell. Per filtrar els duplicats en funció dels valors de les columnes clau , incloeu només aquelles columnes específiques a la funció COUNTIFS.

    Com filtrar els espais en blanc a Excel

    Una fórmula per filtrar les cel·les en blanc és, de fet, una variació de la fórmula del FILTRE d'Excel amb múltiples criteris I. En aquest cas, comprovem si totes les columnes (o particulars) tenen dades i excloem les files on almenys una cel·la està buida. Per identificar cel·les no en blanc, utilitzeu l'operador "no igual a" () juntament amb una cadena buida ("") com aquesta:

    FILTER(matriu, ( columna1 "") * ( column2 =""), "Sense resultats")

    Amb les dades d'origen a A2:C12, per filtrar les filesque continguin una o més cel·les en blanc, s'introdueix la fórmula següent a E3:

    Filtreu les cel·les que contenen text específic

    Per extreure cel·les que contenen cert text, heu de pot utilitzar la funció FILTRE juntament amb la clàssica cel·la If conté la fórmula:

    FILTER(matriu, ISNUMBER(CERCA(" text ", interval )), "Sense resultats")

    Així és com funciona:

    • La funció CERCAR cerca una cadena de text especificada en un interval determinat i retorna un número (la posició del primer caràcter) o #VALOR! error (text no trobat).
    • La funció ISNUMBER converteix tots els números a TRUE i els errors a FALSE i passa la matriu booleana resultant a l'argument include de la funció FILTER.

    Per a aquest exemple, hem afegit els Cognoms dels jugadors a B2:B13, hem escrit la part del nom que volem trobar a G2 i després hem utilitzat la fórmula següent per filtra les dades:

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

    Com a resultat, la fórmula recupera els dos cognoms que contenen "han":

    Filtra i calcula (Suma, Mitjana, Mín., Màx., etc.)

    Una cosa interessant de la funció FILTRE d'Excel és que no només pot extreure valors amb condicions, sinó que també pot resumir les dades filtrades. Per fer-ho, combineu FILTRE amb funcions d'agregació com ara SUMA, MITJANA, COUNT, MAX o MIN.

    Per exemple, per agregar dades d'un grup específic a F1, utilitzeu el següentfórmules:

    Guanyes totals:

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

    Guanyes mitjanes:

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

    Guanyes màximes:

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

    Guanyes mínimes:

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

    Si us plau, tingueu en compte que, en totes les fórmules, utilitzem zero per a l'argument if_empty , de manera que les fórmules serien retorna 0 si no es troben cap valor que compleixi els criteris. Si proporcioneu qualsevol text com ara "Sense resultats" es produiria un error #VALUE, que és, òbviament, l'últim que voleu :)

    Fórmula FILTRE que distingeix entre majúscules i minúscules

    Una fórmula estàndard de FILTRE d'Excel no distingeix entre majúscules i minúscules, és a dir, no fa distinció entre els caràcters minúscules i majúscules. Per distingir entre majúscules i minúscules de text, niu la funció EXACTA a l'argument include . Això obligarà a FILTER a fer una prova lògica de manera que distingeix entre majúscules i minúscules:

    FILTER(matriu, EXACT( interval , criteri ), "Sense resultats")

    Suposant , teniu els dos grups A i a i voleu extreure registres on el grup sigui la "a" minúscula. Per fer-ho, utilitzeu la fórmula següent, on A2:C13 són les dades d'origen i B2:B13 són grups per filtrar:

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

    Com és habitual, podeu introduir el grup objectiu a una cel·la predefinida, per exemple F1, i utilitzeu aquesta referència de cel·la en lloc de text codificat:

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

    Com FILTRAR dades i retornar només columnes específiques

    En la seva majoria, filtrar totes les columnes amb una única fórmula és el que volen els usuaris d'Excel. Però si la vostra taula d'origen conté desenes o

    Michael Brown és un entusiasta de la tecnologia dedicat amb una passió per simplificar processos complexos mitjançant eines de programari. Amb més d'una dècada d'experiència en la indústria tecnològica, ha perfeccionat les seves habilitats en Microsoft Excel i Outlook, així com en Google Sheets i Docs. El bloc de Michael es dedica a compartir els seus coneixements i experiència amb altres persones, oferint consells i tutorials fàcils de seguir per millorar la productivitat i l'eficiència. Tant si sou un professional experimentat com si sou un principiant, el bloc de Michael ofereix valuoses idees i consells pràctics per treure el màxim profit d'aquestes eines de programari essencials.