Funkcija Excel FILTER - dinamično filtriranje s formulami

  • Deliti To
Michael Brown

V tej hitri lekciji se boste naučili, kako v Excelu dinamično filtrirati s formulami. Primeri za filtriranje podvajanj, celic, ki vsebujejo določeno besedilo, z več merili in še več.

Kako običajno filtrirate v Excelu? Večinoma z uporabo samodejnega filtra, v bolj zapletenih scenarijih pa z naprednim filtrom. Ker so te metode hitre in zmogljive, imajo eno pomembno pomanjkljivost - ob spremembi podatkov se ne posodabljajo samodejno, kar pomeni, da bi jih morali očistiti in znova filtrirati. Uvedba funkcije FILTER v Excelu 365 je postala dolgo pričakovana alternativaza razliko od njih se Excelove formule samodejno preračunajo ob vsaki spremembi delovnega lista, zato boste morali filter nastaviti le enkrat!

    Excelova funkcija FILTER

    Funkcija FILTER v Excelu se uporablja za filtriranje obsega podatkov na podlagi meril, ki jih določite.

    Funkcija spada v kategorijo funkcij dinamičnih polj. Rezultat je polje vrednosti, ki se samodejno razširi v območje celic, začenši s celico, v katero ste vnesli formulo.

    Sintaksa funkcije FILTER je naslednja:

    FILTER(array, include, [if_empty])

    Kje:

    • Polje (obvezno) - območje ali niz vrednosti, ki jih želite filtrirati.
    • Vključite (obvezno) - merila, ki so navedena kot logično polje (vrednosti TRUE in FALSE).

      Njegova višina (če so podatki v stolpcih) ali širina (če so podatki v vrsticah) mora biti enaka višini polje argument.

    • If_empty (neobvezno) - vrednost, ki se vrne, če noben vnos ne izpolnjuje meril.

    Funkcija FILTER je na voljo samo v Excelu za Microsoft 365 in Excelu 2021. V Excelu 2019, Excelu 2016 in prejšnjih različicah ni podprta.

    Osnovna Excelova formula FILTER

    Za začetek obravnavajmo nekaj zelo preprostih primerov, da bi bolje razumeli, kako deluje Excelova formula za filtriranje podatkov.

    Če želite iz spodnjega nabora podatkov izluščiti zapise z določeno vrednostjo v polju Skupina , stolpec, recimo skupina C. To storimo tako, da izrazu B2:B13="C" vključiti ki bo ustvaril zahtevano logično polje, pri čemer TRUE ustreza vrednostim "C".

    =FILTER(A2:C13, B2:B13="C", "Ni rezultatov")

    V praksi je bolj priročno, da merila vnesete v ločeno celico, npr. F1, in uporabite sklic na celico, namesto da bi vrednost zakodirali neposredno v formulo:

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

    Za razliko od funkcije Filter v Excelu funkcija ne spremeni prvotnih podatkov. Izloči filtrirane zapise v tako imenovano razlivno območje (E4:G7 na spodnji sliki zaslona), ki se začne v celici, v katero je vnesena formula:

    Če noben zapis ne ustreza določenim merilom, formula vrne vrednost, ki ste jo vnesli v polje if_empty argument, v tem primeru "Ni rezultatov":

    Če bi raje vrniti nič v tem primeru za zadnji argument navedite prazen niz (""):

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

    Če so vaši podatki organizirani vodoravno od leve proti desni, kot je prikazano na spodnji sliki zaslona, bo funkcija FILTER prav tako dobro delovala. Poskrbite le, da boste določili ustrezna območja za polje in . vključiti argumentov, tako da imata izvorno polje in logično polje enako širino:

    =FILTER(B2:M4, B3:M3= B7, "Ni rezultatov")

    Excelova funkcija FILTER - opombe o uporabi

    Za učinkovito filtriranje v Excelu s formulami morate upoštevati nekaj pomembnih točk:

    • Funkcija FILTER samodejno prelije rezultate v delovnem listu navpično ali vodoravno, odvisno od tega, kako so organizirani vaši izvirni podatki. Zato poskrbite, da bo vedno dovolj praznih celic spodaj in desno, sicer se bo pojavila napaka #SPILL.
    • Rezultati Excelove funkcije FILTER so dinamični, kar pomeni, da se samodejno posodabljajo, ko se spremenijo vrednosti v prvotnem naboru podatkov. polje se ne posodobi, ko se v izvorne podatke dodajo novi vnosi. polje za samodejno spreminjanje velikosti, nato ga pretvorite v tabelo Excel in sestavite formule s strukturiranimi referencami ali ustvarite dinamično poimenovano območje.

    Kako filtrirati v Excelu - primeri formul

    Zdaj, ko veste, kako deluje osnovna formula za filtriranje v Excelu, je čas, da si ogledate, kako bi jo lahko razširili za reševanje bolj zapletenih nalog.

    Filtriranje z več merili (logika AND)

    Če želite podatke filtrirati z več merili, morate v polje za filtriranje vnesti dva ali več logičnih izrazov. vključiti argument:

    FILTER(polje, ( obseg1 = merila1 ) * ( obseg2 = merila2 ), "Ni rezultatov")

    Operacija množenja obdeluje polja z Logika AND , s čimer se zagotovi, da so na voljo samo zapisi, ki ustrezajo vsa merila tehnično deluje na ta način:

    Rezultat vsakega logičnega izraza je polje logičnih vrednosti, kjer je TRUE enako 1, FALSE pa 0. Nato se elementi vseh polj na istih mestih pomnožijo. Ker je rezultat pomnoževanja z nič vedno nič, so v dobljeno polje vključeni samo elementi, za katere so vsa merila TRUE, zato se izločijo samo ti elementi.

    Spodnji primeri prikazujejo delovanje te splošne formule.

    Primer 1. Filtriranje več stolpcev v programu Excel

    Če našo osnovno Excelovo formulo FILTER še malo razširimo, filtrirajmo podatke po dveh stolpcih: Skupina (stolpec B) in Zmage (stolpec C).

    V ta namen določimo naslednja merila: v F2 vnesemo ime ciljne skupine ( merila1 ) in najmanjše zahtevano število zmag v F3 ( merila2 ).

    Glede na to, da so naši izvorni podatki v A2:C13 ( polje ), skupine so v B2:B13 ( obseg1 ), zmage pa so v C2:C13 ( obseg2 ), je formula takšna:

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

    Tako boste dobili seznam igralcev v skupini A, ki so dosegli 2 ali več zmag:

    Primer 2. Filtriranje podatkov med datumi

    Najprej je treba opozoriti, da v Excelu ni mogoče sestaviti splošne formule za filtriranje po datumu. V različnih primerih boste morali merila sestaviti drugače, odvisno od tega, ali želite filtrirati po določenem datumu, mesecu ali letu. Namen tega primera je prikazati splošni pristop.

    Našim vzorčnim podatkom dodamo še en stolpec z datumi zadnje zmage (stolpec D). Zdaj bomo izbrali zmage, ki so se zgodile v določenem obdobju, na primer med 17. in 31. majem.

    Upoštevajte, da v tem primeru obe merili veljata za isto območje:

    =FILTER(A2:D13, (D2:D13>=G2) * (D2:D13<=G3), "Ni rezultatov")

    Pri čemer sta datuma G2 in G3 datuma, med katerima se filtrira.

    Filtriranje z več merili (logika OR)

    Za pridobivanje podatkov na podlagi več pogojev OR prav tako uporabite logične izraze, kot je prikazano v prejšnjih primerih, vendar jih namesto množenja seštejete. Ko seštejete logične polja, ki jih vrnejo izrazi, bo dobljeno polje imelo vrednost 0 za vnose, ki ne izpolnjujejo nobenega merila (tj. vsa merila so FALSE), in taki vnosi bodo filtrirani. Vnosi, za katere je privsaj eno merilo je PRAVILNO, se izločijo.

    Tukaj je splošna formula za filtriranje stolpcev z logiko OR:

    FILTER(polje, ( obseg1 = merila1 ) + ( obseg2 = merila2 ), "Ni rezultatov")

    Kot primer izberite seznam igralcev, ki imajo to ali ono število zmag.

    Ob predpostavki, da so izvorni podatki v A2:C13, zmage v C2:C13, zanimive številke zmag pa v F2 in F3, je formula naslednja:

    =FILTER(A2:C13, (C2:C13=F2) + (C2:C13=F3), "Ni rezultatov")

    Tako veste, kateri igralci so zmagali v vseh igrah (4) in kateri v nobeni (0):

    Filtriranje na podlagi več meril AND in OR

    Če morate uporabiti obe vrsti meril, si zapomnite preprosto pravilo: merila AND združite z zvezdico (*), merila OR pa z znakom plus (+).

    Če želite na primer vrniti seznam igralcev, ki imajo določeno število zmag (F2) IN pripadajo skupini, navedeni v E2 ALI E3, sestavite naslednjo verigo logičnih izrazov:

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

    In dobili boste naslednji rezultat:

    Kako filtrirati dvojnike v programu Excel

    Pri delu z velikimi delovnimi listi ali združevanju podatkov iz različnih virov pogosto obstaja možnost, da se vanje prikrade nekaj podvojitev.

    Če želite filtrirati podvojitve in izberite edinstvene elemente, nato pa uporabite funkcijo UNIQUE, kot je razloženo v zgoraj povezanem učbeniku.

    Če je vaš cilj filtriranje dvojnikov , tj. izločite vnose, ki se pojavijo več kot enkrat, nato uporabite funkcijo FILTER skupaj s COUNTIFS.

    Ideja je pridobiti število pojavitev za vse zapise in izločiti tiste, ki so večji od 1. Za pridobitev števila je treba za vsak kriterij_območje / merila par COUNTIFS, kot je ta:

    FILTER( polje , COUNTIFS( stolpec1 , stolpec1, stolpec2 , stolpec2 )>1, "Ni rezultatov")

    Če želite na primer filtrirati podvojene vrstice iz podatkov v A2:C20 na podlagi vrednosti v vseh treh stolpcih, uporabite naslednjo formulo:

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

    Nasvet. Če želite filtrirati podvojitve na podlagi vrednosti v polju ključni stolpci , v funkcijo COUNTIFS vključite samo te posebne stolpce.

    Kako filtrirati prazna mesta v programu Excel

    Formula za filtriranje praznih celic je pravzaprav različica Excelove formule FILTER z več merili AND. V tem primeru preverimo, ali so v vseh (ali določenih) stolpcih podatki, in izključimo vrstice, v katerih je vsaj ena celica prazna. Za prepoznavanje praznih celic uporabite operator "ni enako" () in prazen niz (""), kot sledi:

    FILTER(polje, ( stolpec1 "") * ( stolpec2 =""), "Ni rezultatov")

    Pri izvornih podatkih v A2:C12 se za filtriranje vrstic, ki vsebujejo eno ali več praznih celic, v E3 vnese naslednja formula:

    Filtriranje celic, ki vsebujejo določeno besedilo

    Če želite izločiti celice, ki vsebujejo določeno besedilo, lahko uporabite funkcijo FILTER skupaj s klasično formulo Če celica vsebuje:

    FILTER(array, ISNUMBER(SEARCH(" besedilo ", obseg )), "Ni rezultatov")

    Deluje takole:

    • Funkcija SEARCH išče določen besedilni niz v danem območju in vrne številko (položaj prvega znaka) ali napako #VALUE! (besedilo ni najdeno).
    • Funkcija ISNUMBER pretvori vse številke v TRUE in napake v FALSE ter dobljeno logično polje posreduje funkciji vključiti argumenta funkcije FILTER.

    V tem primeru smo dodali Priimki igralcev v B2:B13, v G2 vnesite del imena, ki ga želite poiskati, in nato uporabite naslednjo formulo za filtriranje podatkov:

    =FILTER(A2:D13, ISNUMBER(SEARCH(G2, B2:B13)), "Ni rezultatov")

    Rezultat je, da formula pridobi dva priimka, ki vsebujeta besedo "han":

    Filtriranje in izračunavanje (vsota, povprečje, minus, maksimum itd.)

    Odlična lastnost Excelove funkcije FILTER je, da ne more le izločiti vrednosti s pogoji, temveč lahko filtrirane podatke tudi povzame. V ta namen združite FILTER s funkcijami združevanja, kot so SUM, AVERAGE, COUNT, MAX ali MIN.

    Če želite na primer združiti podatke za določeno skupino v F1, uporabite naslednje formule:

    Skupno število zmag:

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

    Povprečne zmage:

    =POVPREČJE(FILTER(C2:C13, B2:B13=F1, 0))

    Največje število zmag:

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

    Najmanjše število zmag:

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

    Bodite pozorni, da v vseh formulah uporabljamo ničlo za if_empty argument, tako da bi formule vrnile 0, če ne bi našle nobene vrednosti, ki bi ustrezala merilom. Če bi navedli besedilo, kot je "Ni rezultatov", bi se pojavila napaka #VALUE, kar je seveda zadnja stvar, ki si jo želite :)

    Formula FILTER, občutljiva na velike črke

    Standardna Excelova formula FILTER ne upošteva velikih in malih črk, kar pomeni, da ne razlikuje med malimi in velikimi črkami. Če želite razlikovati velikost besedila, vnesite funkcijo EXACT v vključiti argument. To bo prisililo FILTER, da opravi logični test z upoštevanjem velikih in malih črk:

    FILTER(polje, EXACT( obseg , merila ), "Ni rezultatov")

    Predpostavljajmo, da imate obe skupini A in . a in želite izločiti zapise, v katerih je skupina mala črka "a". Če želite to narediti, uporabite naslednjo formulo, v kateri so A2:C13 izvorni podatki, B2:B13 pa skupine za filtriranje:

    =FILTER(A2:C13, EXACT(B2:B13, "a"), "Ni rezultatov")

    Kot običajno lahko ciljno skupino vnesete v vnaprej določeno celico, na primer F1, in uporabite sklic na to celico namesto trdno kodiranega besedila:

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

    Kako filtrirati podatke in vrniti samo določene stolpce

    Uporabniki programa Excel večinoma želijo filtrirati vse stolpce z eno samo formulo. Če pa izvorna tabela vsebuje deset ali celo sto stolpcev, boste morda želeli omejiti rezultate na nekaj najpomembnejših.

    Primer 1. Filtriranje nekaterih sosednjih stolpcev

    Če želite, da se v rezultatu filtriranja pojavijo nekateri sosednji stolpci, vključite samo te stolpce v polje saj je ta argument tisti, ki določa, katere stolpce je treba vrniti.

    V osnovnem primeru formule FILTER želite vrniti prva dva stolpca ( Ime in . Skupina ). Torej, A2:B13 za polje argument:

    =FILTER(A2:B13, B2:B13=F1, "Ni rezultatov")

    Kot rezultat dobimo seznam udeležencev ciljne skupine, opredeljene v F1:

    Primer 2. Filtriranje nesorodnih stolpcev

    Če želite, da funkcija FILTER vrne nesorodne stolpce, uporabite ta spreten trik:

    1. Ustvarite formulo FILTER z želenim(-i) pogojem(-i), pri čemer uporabite celotno tabelo za polje .
    2. Zgornjo formulo vnesite v drugo funkcijo FILTER. Če želite konfigurirati funkcijo "wrapper", uporabite konstanto polja z vrednostmi TRUE in FALSE ali 1 in 0 za vključiti kjer TRUE (1) označuje stolpce, ki se ohranijo, in FALSE (0) označuje stolpce, ki se izključijo.

    Na primer, če želite vrniti samo Imena (prvi stolpec) in Zmage (3. stolpec) uporabljamo {1,0,1} ali {TRUE,FALSE,TRUE} za vključiti argumenta zunanje funkcije FILTER:

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

    Ali

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

    Kako omejiti število vrstic, ki jih vrne funkcija FILTER

    Če je v formuli FILTER precej rezultatov, vendar ima vaš delovni list omejen prostor in ne morete izbrisati podatkov spodaj, lahko omejite število vrstic, ki jih vrne funkcija FILTER.

    Oglejmo si, kako deluje, na primeru preproste formule, ki v F1 izbere igralce iz ciljne skupine:

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

    Zgornja formula izpiše vse najdene zapise, v našem primeru 4 vrstice. Toda predpostavimo, da imate prostor samo za dve. Če želite izpeljati samo prvi dve najdeni vrstici, morate narediti naslednje:

    • Vključite formulo FILTER v polje argumenta funkcije INDEX.
    • Za vrstica_številka argumenta INDEX uporabite navpično konstanto polja, kot je {1;2}. Ta določa, koliko vrstic se vrne (v našem primeru 2).
    • Za številka_stolpca uporabite vodoravno konstanto polja, kot je {1,2,3}. Ta določa, katere stolpce je treba vrniti (v tem primeru prve tri stolpce).
    • Če želite poskrbeti za morebitne napake, ko ne najdete podatkov, ki bi ustrezali vašim merilom, lahko formulo zavijete v funkcijo IFERROR.

    Celotna formula ima naslednjo obliko:

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

    Pri delu z velikimi tabelami je lahko ročno pisanje konstant polj precej okorno. Ni problema, funkcija SEQUENCE lahko zaporedne številke ustvari samodejno:

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

    Prvi SEQUENCE ustvari navpično polje, ki vsebuje toliko zaporednih številk, kot je določeno v prvem (in edinem) argumentu. Drugi SEQUENCE uporabi funkcijo COLUMNS za štetje števila stolpcev v podatkovni zbirki in ustvari enakovredno vodoravno polje.

    Nasvet. Če želite vrniti podatke iz posebni stolpci , ne vseh stolpcev, v konstanto vodoravnega polja, ki jo uporabljate za številka_stolpca argumenta INDEX, vključite samo te posebne številke. Če želite na primer pridobiti podatke iz 1. in 3. stolpca, uporabite {1,3}.

    Excelova funkcija FILTER ne deluje

    Če je rezultat vaše formule Excel FILTER napaka, bo to najverjetneje ena od naslednjih:

    #CALC! napaka

    Nastane, če izbirni if_empty je argument izpuščen, pa ni najden noben rezultat, ki bi ustrezal merilom. Razlog za to je, da trenutno Excel ne podpira praznih polj. Da bi preprečili takšne napake, se prepričajte, da vedno določite if_empty vrednost v formulah.

    #VALUE napaka

    Nastane, ko polje in . vključiti argumenta so nezdružljive razsežnosti.

    #N/A, #VALUE itd.

    Do različnih napak lahko pride, če je v polju vključiti argument je napaka ali ga ni mogoče pretvoriti v logično vrednost.

    #NAME napaka

    Pojavi se pri poskusu uporabe funkcije FILTER v starejši različici programa Excel. Ne pozabite, da gre za novo funkcijo, ki je na voljo samo v storitvah Office 365 in Excel 2021.

    V novem Excelu se pojavi napaka #NAME, če nehote napačno napišete ime funkcije.

    #SPILL napaka

    Najpogosteje se ta napaka pojavi, če ena ali več celic v razlivnem območju ni popolnoma prazna. Če jo želite odpraviti, preprosto počistite ali izbrišite neprazne celice. Če želite raziskati in rešiti druge primere, glejte #SPILL! napaka v Excelu: kaj pomeni in kako jo odpraviti.

    #REF! napaka

    Pojavi se, ko se formula FILTER uporablja med različnimi delovnimi zvezki in je izvorni delovni zvezek zaprt.

    To je način dinamičnega izpolnjevanja podatkov v Excelu. Zahvaljujem se vam za branje in upam, da se naslednji teden vidimo na našem blogu!

    Prenesite delovni zvezek za prakso

    Filtriranje v Excelu s formulami (.xlsx datoteka)

    Michael Brown je predan tehnološki navdušenec s strastjo do poenostavljanja kompleksnih procesov z uporabo programskih orodij. Z več kot desetletnimi izkušnjami v tehnološki industriji je svoje veščine izpopolnil v Microsoft Excelu in Outlooku ter Google Preglednicah in Dokumentih. Michaelov blog je namenjen deljenju svojega znanja in strokovnega znanja z drugimi ter ponuja preproste nasvete in vadnice za izboljšanje produktivnosti in učinkovitosti. Ne glede na to, ali ste izkušen strokovnjak ali začetnik, Michaelov blog ponuja dragocene vpoglede in praktične nasvete, kako kar najbolje izkoristiti ta osnovna programska orodja.