Sadržaj
U ovoj kratkoj 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 više.
Kako obično filtrirate u Excelu? Uglavnom, korištenjem automatskog filtra, a u složenijim scenarijima s naprednim filtrom. 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 ponovno čistiti i filtrirati. Uvođenje funkcije FILTER u Excelu 365 postaje dugo očekivana alternativa konvencionalnim značajkama. Za razliku od njih, formule programa Excel automatski se ponovno izračunavaju sa svakom promjenom radnog lista, tako da ćete svoj filtar morati postaviti samo jednom!
Funkcija FILTER programa Excel
Funkcija FILTER u Excel se koristi za filtriranje niza podataka na temelju kriterija koje navedete.
Funkcija pripada kategoriji funkcija dinamičkih polja. Rezultat je niz vrijednosti koji se automatski prelijeva u niz ćelija, počevši od ćelije u koju ste unijeli formulu.
Sintaksa funkcije FILTER je sljedeća:
FILTER(array, include , [if_empty])Gdje:
- Niz (obavezno) - raspon ili niz vrijednosti koje želite filtrirati.
- Uključi (obavezno) - kriteriji navedeni kao Booleov niz (vrijednosti TRUE i FALSE).
Njegovčak i stotine stupaca, svakako biste željeli ograničiti rezultate na nekoliko najvažnijih.
Primjer 1. Filtrirajte neke susjedne stupce
U situaciji kada želite da se neki susjedni stupci pojave u rezultat FILTER, uključite samo one stupce u array jer je ovaj argument taj koji određuje koje stupce treba vratiti.
U primjeru osnovne formule FILTER, pretpostavimo da želite vratiti prva 2 stupca ( Ime i Grupa ). Dakle, unosite A2:B13 za argument array :
=FILTER(A2:B13, B2:B13=F1, "No results")
Kao rezultat, dobivamo popis sudionika ciljne skupine definirane u F1:
Primjer 2. Filtrirajte stupce koji nisu susjedni
Kako biste natjerali funkciju FILTER da vrati stupce koji nisu susjedni, upotrijebite ovaj pametan trik:
- Napravite formulu FILTER sa željenim uvjetima koristeći cijelu tablicu za niz .
- Ugniježdite gornju formulu unutar druge funkcije FILTER. Za konfiguraciju funkcije "omotač", upotrijebite konstantu niza vrijednosti TRUE i FALSE ili 1 i 0 za argument include , gdje TRUE (1) označava stupce koji će se zadržati, a FALSE (0) označava stupci koje treba izuzeti.
Na primjer, da bismo vratili samo Imena (1. stupac) i Pobjede (3. stupac), 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 redaka 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, možete ograničiti broj redaka koje funkcija FILTER vraća .
Da vidimo kako funkcionira na primjeru jednostavne formule koja izvlači igrače iz ciljne skupine u F1:
=FILTER(A2:C13, B2:B13=F1)
Gornja formula daje sve zapise koji pronalazi 4 reda u našem slučaju. Ali pretpostavimo da imate mjesta samo za dvoje. Za izlaz samo prva 2 pronađena retka, ovo je ono što trebate učiniti:
- Umetnite formulu FILTER u argument array funkcije INDEX.
- Za row_num argument od INDEX, koristite vertikalnu konstantu niza kao {1;2}. Određuje koliko redaka treba vratiti (2 u našem slučaju).
- Za argument column_num koristite horizontalnu konstantu niza kao {1,2,3}. Određuje koje stupce treba vratiti (prva 3 stupca u ovom primjeru).
- Kako biste se pobrinuli za moguće pogreške kada se ne pronađu podaci koji odgovaraju vašim kriterijima, svoju formulu možete zamotati 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 polja može biti prilično glomazan. Nema problema, funkcija SEQUENCE može automatski generirati uzastopne brojeve za vas:
=IFERROR(INDEX(FILTER(A2:C13, B2:B13=F1), SEQUENCE(2), SEQUENCE(1, COLUMNS(A2:C13))), "No result")
Prvi SEQUENCE generira okomiti nizkoji sadrži onoliko uzastopnih brojeva koliko je navedeno u prvom (i jedinom) argumentu. Drugi SEQUENCE koristi funkciju COLUMNS za brojanje stupaca u skupu podataka i proizvodi ekvivalentni vodoravni niz.
Savjet. Za vraćanje podataka iz određenih stupaca , a ne iz svih stupaca, u horizontalnu konstantu niza koju koristite za argument column_num od INDEX, uključite samo te određene brojeve. Na primjer, za izvlačenje podataka iz 1. i 3. stupca upotrijebite {1,3}.
Excel FILTER funkcija ne radi
U situaciji kada vaša Excel FILTER formula rezultira pogreškom, najvjerojatnije će to biti jedno od sljedećeg:
#CALC! error
Javlja se ako je opcijski argument if_empty izostavljen, a rezultati koji zadovoljavaju kriterije nisu pronađeni. Razlog je taj što Excel trenutno ne podržava prazne nizove. Kako biste spriječili takve pogreške, svakako uvijek definirajte vrijednost if_empty u svojim formulama.
#VALUE error
Javlja se kada array i
#N/A, #VALUE, itd.
Mogu se pojaviti različite pogreške ako neka vrijednost u argumentu include je pogreška ili se ne može pretvoriti u Booleovu vrijednost.
#NAME error
Javlja se prilikom pokušaja korištenja FILTERA 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, pojavljuje se pogreška #NAME ako slučajno pogrešno napišete naziv funkcije.
#SPILL error
Ova se pogreška najčešće pojavljuje ako jedna ili više ćelija u rasponu izlijevanja nisu potpuno prazne . Da biste to popravili, jednostavno obrišite ili izbrišite ćelije koje nisu prazne. Da biste istražili i riješili druge slučajeve, pogledajte #SPILL! greška u Excelu: što znači i kako je popraviti.
#REF! pogreška
Javlja se kada se koristi FILTER formula 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ći tjedan!
Preuzmite radnu bilježnicu za vježbu
Filter u Excelu s formulama (.xlsx datoteka)
visina (kada su podaci u stupcima) ili širina (kada su podaci u redovima) mora biti jednaka onoj od argumenta niz .Funkcija FILTER dostupna je samo u programu Excel za Microsoft 365 i Excel 2021. U Excelu 2019, Excelu 2016 i ranijim verzijama nije podržan.
Osnovna formula Excel FILTER
Za početak, raspravimo nekoliko vrlo jednostavnih slučajeva samo da dobijemo bolje razumijevanje kako radi formula programa Excel za filtriranje podataka.
Iz donjeg skupa podataka, pretpostavimo da želite izdvojiti zapise s određenom vrijednošću u stupcu Grupa , recimo grupa C. Da bismo to učinili, dobavljamo izraz B2:B13="C" argumentu include , koji će proizvesti potreban Booleov niz, s TRUE koji odgovara vrijednostima "C".
=FILTER(A2:C13, B2:B13="C", "No results")
U praksi je prikladnije unijeti kriterije u zasebnu ćeliju, npr. F1 i upotrijebite referencu ćelije umjesto tvrdog kodiranja vrijednosti izravno u formuli:
=FILTER(A2:C13, B2:B13=F1, "No results")
Za razliku od Excelove značajke filtra, funkcija ne mijenja izvorne podatke. Ekstrahira filtrirane zapise u takozvani raspon izlijevanja (E4:G7 na snimci zaslona u nastavku), počevši od ćelije u koju je unesena formula:
Ako nema zapisa odgovaraju navedenim kriterijima, formula vraća vrijednost koju ste stavili u if_empty argument, "Nema rezultata" u ovom primjeru:
Ako biste radije ne vratili ništa u ovom slučaju, tada navedite prazan niz ("") za zadnji 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 Booleov niz imaju istu širinu:
=FILTER(B2:M4, B3:M3= B7, "No results")
Funkcija Excel FILTER - bilješke o korištenju
Za učinkovito filtriranje u Excelu s formulama, evo nekoliko važnih točaka na koje treba obratiti pozornost:
- Funkcija FILTER automatski prebacuje rezultate okomito ili vodoravno na radni list, ovisno o tome kako su organizirani vaši izvorni podaci. Dakle, provjerite imate li uvijek dovoljno praznih ćelija dolje i desno, inače ćete dobiti pogrešku #SPILL.
- Rezultati funkcije Excel FILTER su dinamični, što znači da se automatski ažuriraju kada se vrijednosti u promjena izvornog skupa podataka. Međutim, raspon dostavljen za argument array nije ažuriran kada se novi unosi dodaju izvornim podacima. Ako želite da niz automatski mijenja veličinu, pretvorite ga u Excel tablicu i izgradite formule sa strukturiranim referencama ili izradite dinamički imenovani raspon.
Kako filtrirati u Excelu -primjeri formula
Sada kada znate kako funkcionira osnovna formula Excel filtera, vrijeme je da dobijete neke uvide u to kako se ona može proširiti za rješavanje složenijih zadataka.
Filtrirajte s više kriterija (I logic)
Da biste filtrirali podatke s više kriterija, unesite dva ili više logičkih izraza za argument include :
FILTER(array, ( range1= kriterij1) * ( raspon2= kriterij2), "Nema rezultata")Operacija množenja obrađuje nizove s I logikom , osiguravajući da se vraćaju samo zapisi koji zadovoljavaju 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 s nulom uvijek daje nulu, samo stavke za koje su svi kriteriji TRUE ulaze u dobiveni niz i stoga se samo te stavke izdvajaju.
Primjeri u nastavku pokazuju ovu generičku formulu na djelu.
Primjer 1. Filtrirajte više stupaca u programu Excel
Proširujući našu osnovnu formulu Excel FILTER malo dalje, filtrirajmo podatke prema dva stupca: Grupa (stupac B) i Pobjeđuje (stupac C).
Za ovo smo postavili sljedeće kriterije: upišite naziv ciljne skupine u F2 ( kriteriji1 ) i minimalni potrebni brojpobjeđuje u F3 ( kriterij2 ).
S obzirom da su naši izvorni podaci u A2:C13 ( niz ), grupe su u B2:B13 ( raspon1 ) i dobici su u C2:C13 ( raspon2 ), formula ima ovaj oblik:
=FILTER(A2:C13, (B2:B13=F2) * (C2:C13>=F3), "No results")
Kao rezultat, dobivate popis igrača u skupini A koji su ostvarili 2 ili više pobjeda:
Primjer 2. Filtriranje podataka između datuma
Kao prvo, treba napomenuti da nije moguće za izradu generičke formule za filtriranje prema datumu u Excelu. U različitim situacijama morat ćete drugačije izraditi kriterije, ovisno o tome želite li filtrirati prema određenom datumu, mjesecu ili godini. Svrha ovog primjera je pokazati opći pristup.
Našim uzorcima podataka dodajemo još jedan stupac koji sadrži datume zadnjeg dobitka (stupac D). A sada ćemo izdvojiti dobitke koji su se dogodili u određenom razdoblju, recimo između 17. svibnja i 31. svibnja.
Napominjemo 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 između kojih se filtrira.
Filtriraj s više kriterija (logika ILI)
Za izdvajanje podataka na temelju višestrukog ILI uvjeta, također koristite logičke izraze kao što je prikazano u prethodnim primjerima, ali umjesto množenja, zbrajate ih. Kada se Booleovi nizovi vraćeni izrazima zbroje, rezultirajući niz će imati 0 za unose koji ne zadovoljavaju nijedan kriterij (tj. svekriteriji su FALSE), a takvi će se unosi filtrirati. Izdvojit će se unosi za koje je barem jedan kriterij TRUE.
Evo generičke formule za filtriranje stupaca s logikom OR:
FILTER(array, ( range1= criteria1) + ( range2= criteria2), "Nema rezultata")Kao primjer, izdvojimo popis igrača koji imaju ovo ili taj broj pobjeda.
Pod pretpostavkom da su izvorni podaci u A2:C13, pobjede su u C2:C13, a brojevi pobjeda od interesa su u F2 i F3, formula bi išla kako slijedi:
=FILTER(A2:C13, (C2:C13=F2) + (C2:C13=F3), "No results")
Kao rezultat, znate koji su igrači osvojili sve igre (4), a koji nisu osvojili niti jednu (0):
Filtrirajte na temelju višestrukih kriterija I kao i ILI
U situaciji kada trebate primijeniti obje vrste kriterija, zapamtite ovo jednostavno pravilo: spojite kriterije I sa zvjezdicom (*) i kriterije ILI sa znakom plus znak (+).
Na primjer, da biste vratili popis igrača koji imaju određeni broj pobjeda (F2) I pripadaju skupini 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 dobit ćete sljedeći rezultat:
Kako filtrirati duplikate u Excelu
Kada radite s velikim 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, zatim upotrijebite 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 upotrijebite funkciju FILTER zajedno s COUNTIFS.
Ideja je dobiti broj pojavljivanja za sve zapise i izdvojiti one koji su veći od 1. Da biste dobili brojeve, navedite isti raspon za svaki criteria_range / kriterij par COUNTIFS ovako:
FILTER( niz, COUNTIFS( stupac1, stupac1, stupac2, stupac2)>1, "Nema rezultata")Na primjer, za filtriranje dupliciranih redaka iz podataka u A2:C20 na temelju vrijednosti u sva 3 stupca, evo formule za korištenje:
=FILTER(A2:C20, COUNTIFS(A2:A20, A2:A20, B2:B20, B2:B20, C2:C20, C2:C20)>1, "No results")
Savjet. Da biste filtrirali duplikate na temelju vrijednosti u ključnim stupcima , uključite samo te određene stupce u funkciju COUNTIFS.
Kako filtrirati prazne ćelije u Excelu
Formula za filtriranje praznih ćelija zapravo je varijacija Excelove formule FILTER s više I kriterija. U ovom slučaju provjeravamo imaju li svi (ili određeni) stupci podatke u sebi i isključujemo retke 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, ( stupac1 "") * ( stupac2 =""), "Nema rezultata")S izvornim podacima u A2:C12, za filtriranje redakasadrži 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 s klasičnom ako ćelija sadrži formulu:
FILTER(niz, ISBROJ(TRAŽI(" tekst ", raspon )), "Nema rezultata")Evo kako radi:
- Funkcija SEARCH traži određeni tekstualni niz u zadanom rasponu i vraća ili broj (položaj prvog znaka) ili #VRIJEDNOST! pogreška (tekst nije pronađen).
- Funkcija ISNUMBER pretvara sve brojeve u TRUE, a pogreške u FALSE i prosljeđuje rezultirajuće Booleovo polje argumentu include funkcije FILTER.
Za ovaj primjer, dodali smo Prezimena igrača u B2:B13, upisali dio imena koji želimo pronaći u G2, a zatim upotrijebili sljedeću formulu za 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 (Zbroj, prosjek, min, maksimum, itd.)
Sjajna stvar u vezi s funkcijom FILTER programa Excel je ta što ne samo da može izdvojiti vrijednosti s uvjetima, već i sažeti filtrirane podatke. Za ovo kombinirajte FILTER s funkcijama agregacije kao što su SUM, AVERAGE, COUNT, MAX ili MIN.
Na primjer, za agregiranje podataka 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 dobici:
=MIN(FILTER(C2:C13, B2:B13=F1, 0))
Molimo obratite pozornost da u svim formulama koristimo nulu za argument if_empty , tako da bi formule vrati 0 ako nisu pronađene vrijednosti koje zadovoljavaju kriterije. Navođenje bilo kakvog teksta poput "Nema rezultata" rezultiralo bi greškom #VALUE, što je očito zadnja stvar koju želite :)
FILTER formula osjetljiva na velika i mala slova
Standardna formula Excel FILTER 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 teksta, 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( raspon , kriteriji ), "Nema rezultata")Pretpostavimo , imate obje grupe A i a i želite izdvojiti zapise u kojima je grupa mala slova "a". Da biste to učinili, upotrijebite 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 skupinu u unaprijed definiranu ćeliju, recimo F1, i upotrijebite 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 je filtriranje svih stupaca jednom formulom ono što korisnici programa Excel žele. Ali ako vaša izvorna tablica sadrži desetke ili