Excel funkcija FILTER - dinamičko filtriranje sa formulama

  • Podijeli Ovo
Michael Brown

U ovoj brzoj lekciji naučit ćete kako dinamički filtrirati u Excelu pomoću formula. Primjeri za filtriranje duplikata, ćelija koje sadrže određeni tekst, s više kriterija i još mnogo toga.

Kako obično filtrirate u Excelu? Uglavnom, korištenjem automatskog filtera, au složenijim scenarijima s naprednim filterom. Budući da su brze i moćne, ove metode imaju jedan značajan nedostatak - ne ažuriraju se automatski kada se vaši podaci promijene, što znači da biste morali ponovo očistiti i filtrirati. Uvođenje funkcije FILTER u Excel 365 postaje dugo očekivana alternativa konvencionalnim funkcijama. Za razliku od njih, Excel formule se automatski ponovo izračunavaju sa svakom promjenom radnog lista, tako da ćete morati postaviti svoj filter samo jednom!

    Excel funkcija FILTER

    Filter funkcija u Excel se koristi za filtriranje raspona podataka na osnovu kriterija koje odredite.

    Funkcija pripada kategoriji funkcija dinamičkih nizova. Rezultat je niz vrijednosti koji se automatski prelijeva u raspon ćelija, počevši od ćelije u koju unosite formulu.

    Sintaksa funkcije FILTER je sljedeća:

    FILTER(niz, uključi , [if_empty])

    Gdje:

    • Niz (obavezno) - raspon ili niz vrijednosti koje želite filtrirati.
    • Include (obavezno) - kriterijumi koji se isporučuju kao Boolean niz (TRUE i FALSE vrijednosti).

      Njegovačak i na stotine kolona, ​​možda biste sigurno željeli ograničiti rezultate na nekoliko najvažnijih.

      Primjer 1. Filtrirajte neke susjedne kolone

      U situaciji kada želite da se neki susjedni stupci pojave u FILTER rezultat, uključite samo te stupce u array jer je taj argument taj koji određuje koje stupce treba vratiti.

      U osnovnom primjeru formule FILTER, pod pretpostavkom da želite vratiti prve 2 kolone ( Ime i Grupa ). Dakle, dajete A2:B13 za argument array :

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

      Kao rezultat, dobijamo listu učesnika ciljne grupe definisane u F1:

      Primjer 2. Filtrirajte nesusjedne stupce

      Da biste izazvali funkciju FILTER da vrati nesusjedne stupce, koristite ovaj pametan trik:

      1. Napravite FILTER formulu sa željenim uslovom(ima) koristeći cijelu tablicu za niz .
      2. Ugniježdite gornju formulu unutar druge funkcije FILTER. Da biste konfigurirali funkciju "wrapper", koristite konstantu niza vrijednosti TRUE i FALSE ili 1 i 0 za argument include , gdje TRUE (1) označava stupce koje treba zadržati, a FALSE (0) označava kolone koje treba isključiti.

      Na primjer, da bismo vratili samo Imena (1. kolona) i Pobjede (3. kolona), koristimo {1, 0,1} ili {TRUE,FALSE,TRUE} za argument include vanjske funkcije FILTER:

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

      Ili

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

      Kako ograničitibroj redova koje vraća funkcija FILTER

      Ako vaša formula FILTER pronađe dosta rezultata, ali vaš radni list ima ograničen prostor i ne možete izbrisati podatke ispod, tada možete ograničiti broj redova koje funkcija FILTER vraća .

      Da vidimo kako to funkcionira na primjeru jednostavne formule koja izvlači igrače iz ciljne grupe u F1:

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

      Gorenja formula daje sve zapise koji nalazi, 4 reda u našem slučaju. Ali pretpostavimo da imate prostora za dvoje. Za izlaz samo prva 2 pronađena reda, ovo je ono što trebate učiniti:

      • Uključite formulu FILTER u argument array funkcije INDEX.
      • Za argument red_num za INDEX, koristite konstantu vertikalnog niza kao što je {1;2}. Određuje koliko redova treba vratiti (2 u našem slučaju).
      • Za argument broj_stupca , koristite konstantu horizontalnog niza kao što je {1,2,3}. Određuje koje stupce treba vratiti (prve 3 kolone u ovom primjeru).
      • Da biste se pobrinuli za moguće greške kada se ne pronađu podaci koji odgovaraju vašim kriterijima, možete umotati svoju formulu u funkciju IFERROR.

    Kompletna formula ima ovaj oblik:

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

    Kada radite s velikim tablicama, ručno pisanje konstanti niza može biti prilično glomazan. Nema problema, funkcija SEQUENCE može automatski generirati sekvencijalne brojeve za vas:

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

    Prva SEQUENCE generiše vertikalni nizkoji sadrži onoliko uzastopnih brojeva koliko je navedeno u prvom (i jedinom) argumentu. Druga SEQUENCE koristi funkciju COLUMNS za brojanje broja stupaca u skupu podataka i proizvodi ekvivalentan horizontalni niz.

    Savjet. Da biste vratili podatke iz određenih stupaca , a ne svih kolona, ​​u konstantu horizontalnog niza koju koristite za argument broj_stupca INDEX-a, uključite samo te specifične brojeve. Na primjer, za izdvajanje podataka iz 1. i 3. kolone koristite {1,3}.

    Excel funkcija FILTER ne radi

    U situaciji kada vaša Excel FILTER formula rezultira greškom, najvjerovatnije će to biti jedno od sljedećeg:

    #CALC! error

    Dešava se ako je opcijski if_empty argument izostavljen i nisu pronađeni rezultati koji zadovoljavaju kriterije. Razlog je što Excel trenutno ne podržava prazne nizove. Da biste spriječili takve greške, obavezno uvijek definirajte vrijednost if_empty u svojim formulama.

    #VALUE error

    Dešava se kada su niz i include argument ima nekompatibilne dimenzije.

    #N/A, #VALUE, itd.

    Mogu se pojaviti različite greške ako neka vrijednost u argumentu include je greška ili se ne može pretvoriti u Booleovu vrijednost.

    greška #NAME

    Dešava se kada pokušavate koristiti FILTER u starijoj verziji programa Excel. Imajte na umu da je to nova funkcija koja je dostupna samo u Office 365 i Excel 2021.

    Unovi Excel, javlja se greška #NAME ako slučajno pogrešno napišete ime funkcije.

    #SPILL error

    Ova greška se najčešće javlja ako jedna ili više ćelija u rasponu prelivanja nije potpuno prazna . Da biste to popravili, samo obrišite ili izbrišite neprazne ćelije. Da biste istražili i riješili druge slučajeve, pogledajte #PROLIVANJE! greška u Excelu: šta to znači i kako popraviti.

    #REF! error

    Pojavljuje se kada se formula FILTER koristi između različitih radnih knjiga, a izvorna radna knjiga je zatvorena.

    Tako se dinamički arhiviraju podaci u Excelu. Zahvaljujem vam na čitanju i nadam se da se vidimo na našem blogu sljedeće sedmice!

    Preuzmite radnu svesku za vježbanje

    Filtriraj u Excelu s formulama (.xlsx datoteka)

    visina (kada su podaci u kolonama) ili širina (kada su podaci u redovima) moraju biti jednaki onoj u argumentu array .
  • If_empty (opcionalno) - vrijednost koju treba vratiti kada nijedan unos ne ispunjava kriterije.
  • Filter funkcija je dostupna samo u programu Excel za Microsoft 365 i Excel 2021. U Excel 2019, Excel 2016 i ranijim verzijama nije podržan.

    Osnovna Excel formula FILTER

    Za početak, raspravimo nekoliko vrlo jednostavnih slučajeva samo da dobijemo bolje razumijevanje kako funkcionira Excel formula za filtriranje podataka.

    Iz donjeg skupa podataka, pretpostavimo da želite izdvojiti zapise sa određenom vrijednošću u koloni Grupa , recimo grupa C. Da bismo to učinili, unosimo izraz B2:B13="C" u include argument, koji će proizvesti traženi Boolean niz, s TRUE koji odgovara "C" vrijednostima.

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

    U praksi je zgodnije uneti kriterijume u posebnu ćeliju, npr. F1 i koristite referencu ćelije umjesto čvrstog kodiranja vrijednosti direktno u formuli:

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

    Za razliku od Excel-ove funkcije Filter, funkcija ne pravi nikakve promjene u originalnim podacima. Izvlači filtrirane zapise u takozvani raspon izlivanja (E4:G7 na slici ispod), počevši od ćelije u koju je unesena formula:

    Ako nema zapisa odgovara navedenim kriterijima, formula vraća vrijednost koju ste stavili u if_empty argument, "Nema rezultata" u ovom primjeru:

    Ako ne želite ne vraćati ništa u ovom slučaju, onda navedite prazan niz ("") za posljednji argument:

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

    U slučaju da su vaši podaci organizirani horizontalno s lijeva na desno kao što je prikazano na slici ispod, funkcija FILTER će također dobro raditi. Samo provjerite jeste li definirali odgovarajuće raspone za argumente array i include , tako da izvorni niz i Boolean niz imaju istu širinu:

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

    Excel funkcija FILTER - napomene o upotrebi

    Da biste efikasno filtrirali u Excelu pomoću formula, evo nekoliko važnih tačaka na koje treba obratiti pažnju:

    • Funkcija FILTER automatski prebacuje rezultate okomito ili horizontalno na radni list, ovisno o tome kako su vaši originalni podaci organizirani. Dakle, vodite računa da uvijek imate dovoljno praznih ćelija dolje i desno, inače ćete dobiti grešku #SPILL.
    • Rezultati funkcije Excel FILTER su dinamički, što znači da se automatski ažuriraju kada su vrijednosti u promjena originalnog skupa podataka. Međutim, raspon dostavljen za argument array se ne ažurira kada se novi unosi dodaju izvornim podacima. Ako želite da niz automatski promijeni veličinu, zatim ga pretvorite u Excel tablicu i napravite formule sa strukturiranim referencama ili kreirajte dinamički imenovani raspon.

    Kako filtrirati u Excelu -primjeri formula

    Sada kada znate kako funkcionira osnovna formula Excel filtera, vrijeme je da dobijete uvid u to kako se može proširiti za rješavanje složenijih zadataka.

    Filtriraj s više kriterija (I logic)

    Da biste filtrirali podatke s više kriterija, dostavljate dva ili više logičkih izraza za include argument:

    FILTER(niz, ( range1= kriterijum1) * ( opseg2= kriterijum2), "Nema rezultata")

    Operacija množenja obrađuje nizove sa I logikom , osiguravajući da se vrate samo zapisi koji ispunjavaju sve kriterije . Tehnički, to funkcionira na sljedeći način:

    Rezultat svakog logičkog izraza je niz Booleovih vrijednosti, gdje je TRUE jednako 1, a FALSE 0. Zatim se elementi svih nizova na istim pozicijama množe . Budući da množenje sa nulom uvijek daje nulu, samo stavke za koje su svi kriteriji TRUE ulaze u rezultujući niz, te se stoga samo te stavke izdvajaju.

    Primjeri u nastavku pokazuju ovu generičku formulu u akciji.

    Primjer 1. Filtrirajte više stupaca u Excelu

    Proširujući našu osnovnu Excel FILTER formulu malo dalje, filtrirajmo podatke po dvije kolone: ​​ Grupa (kolona B) i Pobjede (kolona C).

    Za to smo postavili sljedeće kriterije: u F2 upišite naziv ciljne grupe ( kriterijum1 ) i minimalno potreban brojpobjeđuje u F3 ( kriterijum2 ).

    S obzirom da su naši izvorni podaci u A2:C13 ( niz ), grupe su u B2:B13 ( opseg1 ) i pobjede su u C2:C13 ( opseg2 ), formula ima ovaj oblik:

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

    Kao rezultat, dobijate listu igrača u grupi A koji su osigurali 2 ili više pobjeda:

    Primjer 2. Filtrirajte podatke između datuma

    Prvo, treba napomenuti da to nije moguće da napravite generičku formulu za filtriranje po datumu u Excelu. U različitim situacijama, morat ćete drugačije izgraditi kriterije, ovisno o tome želite li filtrirati prema određenom datumu, mjesecu ili godini. Svrha ovog primjera je da demonstrira opći pristup.

    Našem uzorku podataka dodajemo još jednu kolonu koja sadrži datume posljednje pobjede (kolona D). A sada ćemo izdvojiti dobitke koji su se desili u određenom periodu, recimo između 17. maja i 31. maja.

    Imajte na umu da se u ovom slučaju oba kriterija primjenjuju na isti raspon:

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

    Gdje su G2 i G3 datumi za filtriranje između.

    Filtriraj s više kriterija (ILI logika)

    Za izdvajanje podataka na osnovu višestrukog ILI uvjeta, također koristite logičke izraze kao što je prikazano u prethodnim primjerima, ali umjesto množenja, vi ih zbrajate. Kada se zbroje Booleovi nizovi koje su vraćeni izrazima, rezultirajući niz će imati 0 za unose koji ne ispunjavaju nijedan kriterij (tj. svekriterijumi su FALSE), i takvi unosi će biti filtrirani. Unosi za koje je barem jedan kriterij TRUE bit će izdvojeni.

    Evo generičke formule za filtriranje stupaca s logikom ILI:

    FILTER(niz, ( opseg1= kriterijum1) + ( opseg2= kriterijum2), "Nema rezultata")

    Kao primjer, izdvojimo listu igrača koji imaju ovo ili taj broj pobjeda.

    Pod pretpostavkom da su izvorni podaci u A2:C13, pobjede su u C2:C13, a pobjednički brojevi od interesa su u F2 i F3, formula bi išla na sljedeći način:

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

    Kao rezultat, znate koji su igrači pobijedili u svim partijama (4), a koji nisu pobijedili nijednu (0):

    Filtrirajte na osnovu više I i ILI kriterija

    U situaciji kada trebate primijeniti oba tipa kriterija, zapamtite ovo jednostavno pravilo: pridružite kriterije I sa zvjezdicom (*) i OR kriterije sa plusom znak (+).

    Na primjer, da biste vratili listu igrača koji imaju zadati broj pobjeda (F2) I pripadaju grupi spomenutoj u E2 ILI E3, izgradite sljedeći lanac logičkih izrazi:

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

    I dobićete sljedeći rezultat:

    Kako filtrirati duplikate u Excelu

    Kada radite s ogromnim radnim listovima ili kombinirate podatke iz različitih izvora, često postoji mogućnost da se neki duplikati ušuljaju.

    Ako želite filtrirati duplikate i ekstraktjedinstvene stavke, a zatim koristite funkciju UNIQUE kao što je objašnjeno u gore povezanom vodiču.

    Ako je vaš cilj filtrirati duplikate , tj. izdvojiti unose koji se pojavljuju više puta, tada koristite funkciju FILTER zajedno sa COUNTIFS.

    Ideja je da dobijete zbrojeve pojavljivanja za sve zapise i izdvojite one veće od 1. Da biste dobili zbrojeve, dostavljate isti raspon za svaki raspon_kriterija / kriterijum par COUNTIFS ovako:

    FILTER( niz, COUNTIFS( kolona1, kolona1, kolona2, kolona2)>1, "Nema rezultata")

    Na primjer, da filtrirate duple redove iz podataka u A2:C20 na osnovu vrijednosti u sve 3 kolone, evo formule koju treba koristiti:

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

    Savjet. Za filtriranje duplikata na osnovu vrijednosti u ključnim stupcima , uključite samo te specifične stupce u funkciju COUNTIFS.

    Kako filtrirati prazne ćelije u Excel-u

    Formula za filtriranje praznih ćelija je, u stvari, varijacija Excel formule FILTER sa više I kriterijuma. U ovom slučaju provjeravamo da li sve (ili određene) kolone imaju podatke i isključujemo redove u kojima je barem jedna ćelija prazna. Da biste identificirali ćelije koje nisu prazne, koristite operator "nije jednako" () zajedno s praznim nizom ("") ovako:

    FILTER(niz, ( kolona1 "") * ( kolona2 =""), "Nema rezultata")

    Sa izvornim podacima u A2:C12, za filtriranje redovakoje sadrže jednu ili više praznih ćelija, sljedeća formula se unosi u E3:

    Filtrirajte ćelije koje sadrže određeni tekst

    Da biste izdvojili ćelije koje sadrže određeni tekst, može koristiti funkciju FILTER zajedno sa klasičnom Ako ćelija sadrži formulu:

    FILTER(niz, ISNUMBER(SEARCH(" tekst ", opseg )), "Nema rezultata")

    Evo kako to funkcionira:

    • Funkcija SEARCH traži određeni tekstualni niz u datom rasponu i vraća ili broj (poziciju prvog znaka) ili #VRIJEDNOST! greška (tekst nije pronađen).
    • Funkcija ISNUMBER pretvara sve brojeve u TRUE, a greške u FALSE i prosljeđuje rezultirajući Boolean niz u include argument funkcije FILTER.

    Za ovaj primjer, dodali smo Prezimena igrača u B2:B13, upisali dio imena koji želimo pronaći u G2, a zatim koristili sljedeću formulu da filtrirajte podatke:

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

    Kao rezultat, formula dohvaća dva prezimena koja sadrže "han":

    Filtriraj i izračunaj (Sum, Average, Min, Max, itd.)

    Sjajna stvar u vezi sa Excel funkcijom FILTER je to što ne samo da može izdvojiti vrijednosti sa uslovima, već i sumirati filtrirane podatke. Za ovo, kombinirajte FILTER sa funkcijama agregacije kao što su SUM, AVERAGE, COUNT, MAX ili MIN.

    Na primjer, da biste agregirali podatke za određenu grupu u F1, koristite sljedećeformule:

    Ukupni dobici:

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

    Prosječni dobici:

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

    Maksimalni dobici:

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

    Minimalni pobjedi:

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

    Obratite pažnju da u svim formulama koristimo nulu za argument if_empty , kako bi formule vrati 0 ako nije pronađena nijedna vrijednost koja zadovoljava kriterije. Dostavljanje bilo kojeg teksta kao što je “Nema rezultata” rezultiralo bi greškom #VALUE, što je očito posljednje što želite :)

    Formula FILTER-a osjetljiva na velika i mala slova

    Standardna Excel FILTER formula ne razlikuje velika i mala slova, što znači da ne pravi razliku između malih i velikih znakova. Da biste razlikovali velika i mala slova, ugniježdite funkciju EXACT u argument include . Ovo će prisiliti FILTER da izvrši logički test na način koji razlikuje velika i mala slova:

    FILTER(niz, EXACT( opseg , kriterijum ), "Nema rezultata")

    Pretpostavljajući , imate obje grupe A i a i želite izdvojiti zapise gdje je grupa mala slova "a". Da biste to učinili, koristite sljedeću formulu, gdje su A2:C13 izvorni podaci, a B2:B13 grupe za filtriranje:

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

    Kao i obično, možete unijeti ciljnu grupu u unaprijed definiranu ćeliju, recimo F1, i koristite tu referencu ćelije umjesto tvrdo kodiranog teksta:

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

    Kako FILTRIRATI podatke i vratiti samo određene stupce

    Uglavnom, filtriranje svih kolona pomoću jedne formule je ono što korisnici Excela žele. Ali ako vaša izvorna tablica sadrži desetice ili

    Michael Brown je posvećen tehnološki entuzijasta sa strašću za pojednostavljenje složenih procesa pomoću softverskih alata. Sa više od decenije iskustva u tehnološkoj industriji, usavršio je svoje vještine u Microsoft Excelu i Outlooku, kao i Google Sheets i Docs. Michaelov blog je posvećen dijeljenju svog znanja i stručnosti s drugima, pružajući jednostavne savjete i tutorijale za poboljšanje produktivnosti i efikasnosti. Bilo da ste iskusni profesionalac ili početnik, Michaelov blog nudi vrijedne uvide i praktične savjete za izvlačenje maksimuma iz ovih osnovnih softverskih alata.