Sisukord
Selles kiire õppetunnis saate teada, kuidas Excelis dünaamiliselt valemitega filtreerida. Näiteid dubleeringute, teatud teksti sisaldavate lahtrite, mitme kriteeriumiga lahtrite ja muu filtreerimiseks.
Kuidas te tavaliselt Excelis filtreerite? Enamasti kasutades automaatset filtrit ja keerulisemates stsenaariumides täiustatud filtrit. Olles kiired ja võimsad, on neil meetoditel üks oluline puudus - nad ei uuenda automaatselt, kui teie andmed muutuvad, mis tähendab, et te peate puhastama ja uuesti filtreerima. Funktsiooni FILTER kasutuselevõtt Excel 365-s saab kauaoodatud alternatiiviks.tavapäraste funktsioonidega. Erinevalt neist arvutatakse Exceli valemid automaatselt ümber iga töölehe muutmise korral, seega peate filtri seadistama vaid üks kord!
Exceli funktsioon FILTER
Exceli funktsiooni FILTER kasutatakse andmevaliku filtreerimiseks määratud kriteeriumide alusel.
Funktsioon kuulub Dünaamiliste massiividega funktsioonide kategooriasse. Tulemuseks on väärtuste massiivi, mis valgub automaatselt lahtrite vahemikku, alustades lahtrist, kuhu sisestate valemi.
Funktsiooni FILTER süntaks on järgmine:
FILTER(array, include, [if_empty])Kus:
- Array (nõutav) - väärtuste vahemik või massiiv, mida soovite filtreerida.
- Lisada (nõutav) - kriteeriumid, mis on esitatud booluse massiivi kujul (väärtused TRUE ja FALSE).
Selle kõrgus (kui andmed on veergudes) või laius (kui andmed on ridades) peab olema võrdne sama kõrgusega kui massiivi argument.
- If_empty (valikuline) - väärtus, mis tagastatakse, kui ükski kirje ei vasta kriteeriumidele.
Funktsioon FILTER on saadaval ainult Excel for Microsoft 365 ja Excel 2021. Excel 2019, Excel 2016 ja varasemad versioonid seda ei toeta.
Põhiline Exceli FILTER valem
Alustuseks arutame paari väga lihtsat juhtumit, et paremini mõista, kuidas Exceli valem andmete filtreerimiseks töötab.
Oletame, et soovite allpool esitatud andmekogumist eraldada kirjed, millel on konkreetne väärtus väärtuses Rühm , veerg, ütleme grupp C. Et see oleks tehtud, anname väljendi B2:B13="C", et lisada argument, mis annab nõutava Boolean massiivi, kus TRUE vastab "C" väärtustele.
=FILTER(A2:C13, B2:B13="C", "Tulemused puuduvad")
Praktikas on mugavam sisestada kriteeriumid eraldi lahtrisse, nt F1, ja kasutada lahtriviidet, selle asemel et väärtus otse valemisse sisse kodeerida:
=FILTER(A2:C13, B2:B13=F1, "Tulemused puuduvad")
Erinevalt Exceli funktsioonist Filter ei muuda algseid andmeid. See eraldab filtreeritud kirjed niinimetatud väljavooluvööndisse (E4:G7 alloleval ekraanipildil), alustades lahtrist, kuhu valem on sisestatud:
Kui ükski kirje ei vasta määratud kriteeriumidele, siis tagastab valem väärtuse, mille paned lahtrisse if_empty argument, selles näites "No results":
Kui soovite pigem ei tagasta midagi sel juhul esitage viimaseks argumendiks tühi string (""):
=FILTER(A2:C13, B2:B13=F1, "")
Juhul, kui teie andmed on organiseeritud horisontaalselt vasakult paremale, nagu on näidatud alloleval ekraanipildil, siis töötab ka funktsioon FILTER kenasti. Lihtsalt veenduge, et määrate sobivad vahemikud jaoks massiivi ja lisada argumendid, nii et lähtemassiivi ja Boolean massiivi laius oleks sama:
=FILTER(B2:M4, B3:M3= B7, "Tulemused puuduvad")
Exceli funktsioon FILTER - kasutamismärkused
Selleks, et Excelis valemitega tõhusalt filtreerida, on siin paar olulist punkti, mida tuleb tähele panna:
- Funktsioon FILTER valutab tulemused automaatselt töölehel vertikaalselt või horisontaalselt, sõltuvalt sellest, kuidas teie algandmed on korraldatud. Seega veenduge, et teil on alati piisavalt tühje lahtreid allapoole ja paremale, vastasel juhul saate #SPILL-viga.
- Exceli funktsiooni FILTER tulemused on dünaamilised, mis tähendab, et need ajakohastuvad automaatselt, kui algse andmekogumi väärtused muutuvad. massiivi argumenti ei uuendata, kui lähteandmetesse lisatakse uusi kirjeid. Kui soovite, et parameeter massiivi automaatselt suuruse muutmiseks, seejärel teisendage see Exceli tabeliks ja koostage valemid struktureeritud viidetega või looge dünaamiline nimega vahemik.
Kuidas filtreerida Excelis - valemite näited
Nüüd, kui te teate, kuidas Exceli põhiline filtrivalem töötab, on aeg tutvuda sellega, kuidas seda saaks laiendada keerukamate ülesannete lahendamiseks.
Mitme kriteeriumiga filtreerimine (AND loogika)
Mitme kriteeriumiga andmete filtreerimiseks esitate kaks või enam loogilist avaldist lisada argument:
FILTER(array, ( vahemik1 = kriteeriumid1 ) * ( vahemik2 = kriteeriumid2 ), "Tulemusi ei ole")Korrutamisoperatsioon töötleb massiive koos AND loogika , tagades, et ainult need kirjed, mis vastavad kõik kriteeriumid Tehniliselt toimib see nii:
Iga loogilise väljendi tulemus on booluse väärtuste massiivi, kus TRUE võrdub 1 ja FALSE 0. Seejärel korrutatakse kõigi sama positsioonil olevate massiivide elemendid. Kuna nulliga korrutamine annab alati nulli, satuvad saadud massiivi ainult need elemendid, mille puhul kõik kriteeriumid on TRUE, ja järelikult eraldatakse ainult need elemendid.
Allpool toodud näited näitavad seda üldist valemit töös.
Näide 1. Mitme veeru filtreerimine Excelis
Laiendades meie Exceli põhivalemit FILTER veidi edasi, filtreerime andmeid kahe veeru järgi: Rühm (veerg B) ja Võidab (veerg C).
Selleks seadistame järgmised kriteeriumid: sisestame F2-sse sihtrühma nime ( kriteeriumid1 ) ja minimaalne nõutav arv võite F3-s ( kriteeriumid2 ).
Arvestades, et meie lähteandmed on A2:C13 ( massiivi ), rühmad on B2:B13 ( vahemik1 ) ja võidud on C2:C13 ( vahemik2 ), on valem selline:
=FILTER(A2:C13, (B2:B13=F2) * (C2:C13>=F3), "Tulemused puuduvad")
Tulemusena saate nimekirja A-rühma mängijatest, kes on saavutanud 2 või rohkem võitu:
Näide 2. Andmete filtreerimine kuupäevade vahel
Kõigepealt tuleb märkida, et Excelis ei ole võimalik koostada üldist valemit kuupäeva järgi filtreerimiseks. Erinevates olukordades tuleb kriteeriumid koostada erinevalt, sõltuvalt sellest, kas soovite filtreerida konkreetse kuupäeva, kuu või aasta järgi. Selle näite eesmärk on näidata üldist lähenemist.
Meie näidisandmetele lisame veel ühe veeru, mis sisaldab viimase võidu kuupäevi (veerg D). Ja nüüd võtame välja võidud, mis toimusid konkreetsel perioodil, näiteks 17. mai ja 31. mai vahel.
Pange tähele, et antud juhul kehtivad mõlemad kriteeriumid sama vahemiku suhtes:
=FILTER(A2:D13, (D2:D13>=G2) * (D2:D13<=G3), "Tulemused puuduvad")
Kus G2 ja G3 on kuupäevad, mille vahel tuleb filtreerida.
Mitme kriteeriumiga filtreerimine (VÕI-loogika)
Mitme VÕI tingimuse alusel andmete väljavõtmiseks kasutate samuti loogilisi väljendeid nagu eelmistes näidetes, kuid korrutamise asemel liidate need kokku. Kui väljenditega tagastatavad booluse massiivid summeeritakse, on tulemuseks saadud massiivi kirjete puhul, mis ei vasta ühelegi kriteeriumile (st kõik kriteeriumid on FALSE), 0 ja sellised kirjed filtreeritakse välja. Kirjed, mille puhul onvähemalt üks kriteerium on TRUE, siis eraldatakse.
Siin on üldine valem veergude filtreerimiseks OR-loogikaga:
FILTER(array, ( vahemik1 = kriteeriumid1 ) + ( vahemik2 = kriteeriumid2 ), "Tulemusi ei ole")Näitena võtame välja nimekirja mängijatest, kes on seda või teist võitude arv.
Eeldades, et lähteandmed on A2:C13, võidud on C2:C13 ja huvipakkuvad võidunumbrid on F2 ja F3, on valem järgmine:
=FILTER(A2:C13, (C2:C13=F2) + (C2:C13=F3), "Tulemused puuduvad")
Tulemusena saate teada, millised mängijad on võitnud kõik mängud (4) ja millised ei ole võitnud ühtegi (0):
Filtreerimine mitme AND ja OR kriteeriumi alusel
Kui teil on vaja rakendada mõlemat kriteeriumitüüpi, pidage meeles seda lihtsat reeglit: ühendage AND-kriteeriumid tärniga (*) ja OR-kriteeriumid plussmärgiga (+).
Näiteks selliste mängijate nimekirja tagastamiseks, kellel on antud arv võite (F2) JA kes kuuluvad kas E2 VÕI E3 mainitud gruppi, tuleb luua järgmine loogiliste väljendite ahel:
=FILTER(A2:C13, (C2:C13=F2) * ((B2:B13=E2) + (B2:B13=E3)), "Tulemused puuduvad")
Ja te saate järgmise tulemuse:
Kuidas filtreerida duplikaate Excelis
Kui töötate suurte töölehtedega või kombineerite andmeid erinevatest allikatest, on sageli võimalus, et mõned duplikaadid satuvad sisse.
Kui otsite filtreerida välja duplikaadid ja eraldage unikaalsed elemendid, seejärel kasutage funktsiooni UNIQUE, nagu on selgitatud eespool lingitud õpetuses.
Kui teie eesmärk on filtreeri duplikaadid , st eraldada kirjed, mis esinevad rohkem kui üks kord, siis kasutage funktsiooni FILTER koos COUNTIFSiga.
Mõte on saada kõigi kirjete esinemissagedused ja eraldada need, mis on suuremad kui 1. Arvude saamiseks esitate sama vahemiku iga kirje jaoks. kriteeriumid_vahemik / kriteeriumid paar COUNTIFS nagu see:
FILTER( massiivi , COUNTIFS( column1 , column1, veerg2 , veerg2 )>1, "Tulemused puuduvad")Näiteks, kui soovite filtreerida dubleerivaid ridu A2:C20 andmetest kõigi 3 veeru väärtuste põhjal, siis kasutage järgmist valemit:
=FILTER(A2:C20, COUNTIFS(A2:A20, A2:A20, B2:B20, B2:B20, C2:C20, C2:C20)>1, "Tulemused puuduvad")
Vihje. Dublettide filtreerimiseks väärtuste põhjal on võtmesambad lisada ainult need konkreetsed veerud funktsiooni COUNTIFS.
Kuidas filtreerida Excelis tühikuid välja
Valem tühjade lahtrite välja filtreerimiseks on tegelikult Exceli FILTER valemi variant mitme AND-kriteeriumiga. Sel juhul kontrollime, kas kõikides (või teatud) veergudes on andmeid ja välistame read, kus vähemalt üks lahter on tühi. Mitte-ühjade lahtrite tuvastamiseks kasutate operaatorit "not equal to" () koos tühja stringiga (""), näiteks nii:
FILTER(array, ( column1 "") * ( veerg2 =""), "Tulemused puuduvad")Kui lähteandmed on A2:C12, siis ühe või mitu tühja lahtrit sisaldavate ridade välja filtreerimiseks sisestatakse E3-sse järgmine valem:
Filtreeri lahtrid, mis sisaldavad konkreetset teksti
Teatud teksti sisaldavate lahtrite eraldamiseks saate kasutada funktsiooni FILTER koos klassikalise valemiga If cell contains:
FILTER(array, ISNUMBER(SEARCH(" tekst ", vahemik )), "Tulemusi ei ole")See toimib järgmiselt:
- Funktsioon SEARCH otsib määratud tekstistringi antud vahemikus ja tagastab kas numbri (esimese tähemärgi positsioon) või #VALUE! vea (teksti ei leitud).
- Funktsioon ISNUMBER konverteerib kõik numbrid TRUE ja vead FALSE ja annab saadud booluse massiivi üle funktsioonile lisada funktsiooni FILTER argument.
Selle näite jaoks oleme lisanud Perekonnanimed mängijatest B2:B13, sisestame nime osa, mida tahame leida G2-s, ja kasutame andmete filtreerimiseks järgmist valemit:
=FILTER(A2:D13, ISNUMBER(SEARCH(G2, B2:B13)), "Tulemused puuduvad")
Tulemusena otsib valem kaks perekonnanime, mis sisaldavad sõna "han":
Filtreerimine ja arvutamine (summa, keskmine, min, max jne.)
Exceli funktsiooni FILTER lahe on see, et see ei saa mitte ainult eraldada väärtusi tingimustega, vaid ka filtreeritud andmeid kokku võtta. Selleks ühendage FILTER selliste agregeerimisfunktsioonidega nagu SUM, AVERAGE, COUNT, MAX või MIN.
Näiteks, kui soovite koondada andmeid konkreetse rühma F1 kohta, kasutage järgmisi valemeid:
Võidud kokku:
=SUM(FILTER(C2:C13, B2:B13=F1, 0))
Keskmine võidab:
= AVERAGE(FILTER(C2:C13, B2:B13=F1, 0))
Maksimaalsed võidud:
=MAX(FILTER(C2:C13, B2:B13=F1, 0))
Minimaalsed võidud:
=MIN(FILTER(C2:C13, B2:B13=F1, 0))
Palun pöörake tähelepanu sellele, et kõikides valemites kasutame nulli jaoks if_empty argument, nii et valemid tagastaksid 0, kui kriteeriumidele vastavaid väärtusi ei leita. Mis tahes teksti, näiteks "No results", esitamine tooks kaasa #VALUE vea, mis on ilmselgelt viimane asi, mida te tahate :)
Suur- ja väiketähendusega FILTER valem
Standardne Exceli valem FILTER on suur- ja väiketähtede suhtes tundmatu, mis tähendab, et see ei tee vahet väiketähtede ja suurtähtede vahel. Teksti suurtähtede eristamiseks pesitsege funktsioon EXACT funktsioonis lisada See sunnib FILTERit tegema loogilist testi suur- ja väiketähelepanu arvestavalt:
FILTER(array, EXACT( vahemik , kriteeriumid ), "Tulemusi ei ole")Oletame, et teil on mõlemad rühmad A ja a ja soovite eraldada kirjeid, mille rühm on väike "a". Selleks kasutage järgmist valemit, kus A2:C13 on lähteandmed ja B2:B13 on filtreeritavad rühmad:
=FILTER(A2:C13, EXACT(B2:B13, "a"), "Tulemused puuduvad")
Nagu tavaliselt, võite sisestada sihtrühma eelnevalt määratud lahtrisse, näiteks F1, ja kasutada seda lahtriviidet kõvakooditud teksti asemel:
=FILTER(A2:C13, EXACT(B2:B13, F1), "Tulemused puuduvad")
Kuidas filtreerida andmeid ja tagastada ainult teatud veerud
Enamasti on kõigi veergude filtreerimine ühe valemiga see, mida Exceli kasutajad soovivad. Kuid kui teie lähtetabel sisaldab kümneid või isegi sadu veerge, võite kindlasti soovida piirata tulemusi mõnele kõige olulisemale.
Näide 1. Mõne kõrvuti asetseva veeru filtreerimine
Olukorras, kus soovite, et mõned naabersarjad ilmuksid FILTERi tulemuses, lisage ainult need veerud, mis on esitatud massiivi sest just see argument määrab, millised veerud tagastatakse.
Eeldades, et soovite tagasi anda esimesed 2 veergu ( Nimi ja Rühm ). Niisiis, te esitate A2:B13 jaoks massiivi argument:
=FILTER(A2:B13, B2:B13=F1, "Tulemused puuduvad")
Tulemusena saame F1-s määratletud sihtrühma osalejate nimekirja:
Näide 2. Filtreeri mittekohalisi veerge
Selleks, et funktsioon FILTER tagastaks mitte-ühenduvad veerud, kasutage seda nutikat trikki:
- Teha FILTER valem soovitud tingimus(t)ega, kasutades kogu tabeli jaoks massiivi .
- Pesitse ülaltoodud valem teise funktsiooni FILTER sisse. "Wrapper"-funktsiooni seadistamiseks kasuta massiivi konstanti TRUE ja FALSE väärtuste või 1 ja 0 väärtuste jaoks. lisada argument, kus TRUE (1) tähistab säilitatavaid veerge ja FALSE (0) tähistab välja jäetavaid veerge.
Näiteks, et tagastada ainult Nimed (1. veerg) ja Võidab (3. veerg), kasutame {1,0,1} või {TRUE,FALSE,TRUE} jaoks lisada välise funktsiooni FILTER argument:
=FILTER(FILTER(A2:C13, B2:B13=F1), {1,0,1})
Või
=FILTER(FILTER(A2:C13, B2:B13=F1), {TRUE,FALSE,TRUE})
Kuidas piirata FILTER funktsiooniga tagastatavate ridade arvu
Kui teie valem FILTER leiab üsna palju tulemusi, kuid teie töölehel on piiratud ruumi ja te ei saa allpool olevaid andmeid kustutada, siis saate piirata ridade arvu, mille funktsioon FILTER tagastab.
Vaatame, kuidas see toimib lihtsa valemi näitel, mis tõmbab F1 sihtrühma mängijaid:
=FILTER(A2:C13, B2:B13=F1)
Ülaltoodud valem väljastab kõik leitud kirjed, meie puhul 4 rida. Aga oletame, et teil on ruumi ainult kahele. Et väljastada ainult esimesed 2 leitud rida, peate tegema järgmist:
- Ühendage valem FILTER valemiga massiivi funktsiooni INDEX argument.
- Sest row_num argument INDEX, kasutage vertikaalset massiivi konstanti nagu {1;2}. See määrab, mitu rida tagastada (meie puhul 2).
- Sest column_num argumendi puhul kasutage horisontaalset massiivi konstanti, näiteks {1,2,3}. See määrab, millised veerud tagastada (antud näites esimesed 3 veergu).
- Et hoolitseda võimalike vigade eest, kui teie kriteeriumidele vastavaid andmeid ei leita, saate oma valemi ümbritseda funktsiooniga IFERROR.
Täielik valem on sellisel kujul:
=IFERROR(INDEX(FILTER(A2:C13, B2:B13=F1), {1;2}, {1,2,3}), "Tulemus puudub")
Kui töötate suurte tabelitega, võib massiivi konstandide käsitsi kirjutamine olla üsna tülikas. Pole probleemi, funktsioon SEQUENCE saab järjestikused numbrid teie jaoks automaatselt genereerida:
=IFERROR(INDEX(FILTER(A2:C13, B2:B13=F1), SEQUENCE(2), SEQUENCE(1, COLUMNS(A2:C13))), "No result")
Esimene SEQUENCE genereerib vertikaalse massiivi, mis sisaldab nii palju järjestikuseid numbreid, kui on määratud esimeses (ja ainsas) argumendis. Teine SEQUENCE kasutab COLUMNS-funktsiooni, et lugeda andmekogumi veergude arvu ja genereerib samaväärse horisontaalse massiivi.
Vihje. Andmete tagastamiseks konkreetsed veerud , mitte kõik veerud, horisontaalses massiivi konstandis, mida kasutate column_num argumendi INDEX puhul ainult need konkreetsed numbrid. Näiteks 1. ja 3. veeru andmete väljavõtmiseks kasutage {1,3}.
Exceli funktsioon FILTER ei tööta
Olukorras, kus teie Exceli FILTER-valem annab tulemuseks vea, on tõenäoliselt tegemist ühega järgmistest:
#CALC! viga
Tekib, kui valikuline if_empty argument on välja jäetud ja kriteeriumidele vastavaid tulemusi ei leita. Põhjus on selles, et praegu ei toeta Excel tühje massiive. Selliste vigade vältimiseks tuleb kindlasti alati defineerida parameeter if_empty väärtus teie valemites.
#VALUE viga
Tekib, kui massiivi ja lisada argumendil on kokkusobimatud mõõtmed.
#N/A, #VALUE jne.
Erinevad vead võivad tekkida, kui mõni väärtus lisada argument on viga või seda ei saa teisendada booleseks väärtuseks.
#NAME viga
Tekib, kui püüate kasutada FILTERit Exceli vanemas versioonis. Pidage meeles, et tegemist on uue funktsiooniga, mis on saadaval ainult Office 365 ja Excel 2021 versioonis.
Uues Excelis tekib #NAME viga, kui kirjutate funktsiooni nime kogemata valesti.
#SPILL viga
Kõige sagedamini tekib see viga, kui üks või mitu lahtrit väljavoolupiirkonnas ei ole täiesti tühjad. Selle parandamiseks tühjendage või kustutage lihtsalt mitte-tühjad lahtrid. Muude juhtumite uurimiseks ja lahendamiseks vaadake palun artiklit #SPILL! viga Excelis: mida see tähendab ja kuidas seda parandada.
#REF! viga
Tekib siis, kui erinevate töövihikute vahel kasutatakse valemit FILTER ja lähtetöövihik on suletud.
See ongi see, kuidas andmeid Excelis dünaamiliselt esitada. Tänan teid lugemise eest ja loodan, et näeme teid järgmisel nädalal meie blogis!
Lae alla praktiline töövihik
Filtreerimine Excelis valemitega (.xlsx fail)