Turinys
Šioje trumpoje pamokoje sužinosite, kaip dinamiškai filtruoti "Excel" naudojant formules. Pavyzdžiai, kaip filtruoti dublikatus, langelius, kuriuose yra tam tikro teksto, naudojant kelis kriterijus ir kt.
Kaip paprastai filtruojate "Excel" programoje? Dažniausiai naudodami automatinį filtrą, o sudėtingesniuose scenarijuose - išplėstinį filtrą. Nors šie metodai yra greiti ir galingi, jie turi vieną svarbų trūkumą - pasikeitus duomenims jie neatnaujinami automatiškai, o tai reiškia, kad tektų valyti ir filtruoti iš naujo. "Excel 365" įdiegus funkciją FILTER, atsiranda ilgai laukta alternatyva.įprastines funkcijas. Skirtingai nuo jų, "Excel" formulės perskaičiuojamos automatiškai kiekvieną kartą pakeitus darbalapį, todėl filtrą reikės nustatyti tik vieną kartą!
"Excel" funkcija FILTER
"Excel" funkcija FILTER naudojama duomenų intervalui filtruoti pagal nurodytus kriterijus.
Ši funkcija priklauso dinaminių masyvų funkcijų kategorijai. Rezultatas - reikšmių masyvas, kuris automatiškai išsilieja į ląstelių intervalą, pradedant ląstele, kurioje įvedėte formulę.
Funkcijos FILTER sintaksė yra tokia:
FILTER(masyvas, include, [if_empty])Kur:
- Masyvas (būtina) - reikšmių, kurias norite filtruoti, intervalas arba masyvas.
- Įtraukite (privaloma) - kriterijai pateikiami kaip loginis masyvas (TRUE ir FALSE reikšmės).
Jo aukštis (kai duomenys pateikiami stulpeliais) arba plotis (kai duomenys pateikiami eilutėmis) turi būti lygus masyvas argumentas.
- If_empty (neprivaloma) - reikšmė, kurią reikia grąžinti, kai nė vienas įrašas neatitinka kriterijų.
Funkcija FILTER galima tik "Excel for Microsoft 365" ir "Excel 2021". 2019, 2016 ir ankstesnėse "Excel" versijose ji nepalaikoma.
Pagrindinė "Excel" FILTER formulė
Pirmiausia aptarsime kelis labai paprastus atvejus, kad geriau suprastumėte, kaip veikia "Excel" formulė duomenims filtruoti.
Tarkime, kad iš toliau pateikto duomenų rinkinio norite išskirti įrašus su konkrečia reikšme Grupė , stulpelis, tarkime, grupė C. Kad tai būtų padaryta, pateikiame išraišką B2:B13="C" į įtraukti argumentas, kuris sukurs reikiamą loginių reikšmių masyvą, kuriame TRUE atitinka "C" reikšmes.
=FILTRAS(A2:C13, B2:B13="C", "Rezultatų nėra")
Praktikoje patogiau kriterijus įvesti į atskirą langelį, pvz., F1, ir naudoti langelio nuorodą, užuot tiesiogiai į formulę įvedus reikšmę:
=FILTER(A2:C13, B2:B13=F1, "Nėra rezultatų")
Skirtingai nei "Excel" filtro funkcija, ši funkcija nedaro jokių pakeitimų pradiniuose duomenyse. Ji ištraukia filtruotus įrašus į vadinamąjį išsiliejimo diapazoną (E4:G7 toliau pateiktoje ekrano kopijoje), prasidedantį ląstelėje, kurioje įvesta formulė:
Jei nurodytų kriterijų neatitinka nė vienas įrašas, formulė grąžina reikšmę, kurią įrašėte į if_empty argumentas, šiame pavyzdyje - "Nėra rezultatų":
Jei norėtumėte grąžinti nieko tokiu atveju paskutiniam argumentui pateikite tuščią eilutę (""):
=FILTRAS(A2:C13, B2:B13=F1, "")
Jei jūsų duomenys yra organizuoti horizontaliai iš kairės į dešinę, kaip parodyta toliau pateiktame paveikslėlyje, puikiai veiks ir FILTER funkcija. Tik įsitikinkite, kad apibrėžėte tinkamus intervalus masyvas ir įtraukti argumentus, kad šaltinio masyvo ir loginio masyvo plotis būtų vienodas:
=FILTRAS(B2:M4, B3:M3= B7, "Rezultatų nėra")
"Excel" funkcija FILTER - naudojimo pastabos
Norėdami veiksmingai filtruoti "Excel" programoje naudodami formules, atkreipkite dėmesį į keletą svarbių dalykų:
- Filtro funkcija automatiškai išskleidžia rezultatus darbo lape vertikaliai arba horizontaliai, priklausomai nuo to, kaip organizuoti pradiniai duomenys. Todėl įsitikinkite, kad visada turite pakankamai tuščių langelių apačioje ir dešinėje, kitaip gausite #SPILL klaidą.
- "Excel" funkcijos FILTER rezultatai yra dinamiški, t. y. jie automatiškai atnaujinami, kai pasikeičia pradinio duomenų rinkinio vertės. masyvas argumentas neatnaujinamas, kai į šaltinio duomenis įtraukiami nauji įrašai. masyvas automatiškai pakeisti dydį, tada paverskite jį "Excel" lentele ir sudarykite formules su struktūrinėmis nuorodomis arba sukurkite dinamišką pavadintą intervalą.
Kaip filtruoti "Excel" programoje - formulių pavyzdžiai
Dabar, kai žinote, kaip veikia pagrindinė "Excel" filtro formulė, metas sužinoti, kaip ją būtų galima išplėsti sprendžiant sudėtingesnes užduotis.
Filtras su keliais kriterijais (AND logika)
Norėdami filtruoti duomenis pagal kelis kriterijus, pateikite dvi ar daugiau loginių išraiškų įtraukti argumentas:
FILTER(masyvas, ( diapazonas1 = kriterijai1 ) * ( diapazonas2 = kriterijai2 ), "Nėra rezultatų")Daugybos operacija apdoroja masyvus su AND logika , užtikrinant, kad tik tie įrašai, kurie atitinka visi kriterijai Techniškai tai veikia taip:
Kiekvienos loginės išraiškos rezultatas yra loginių reikšmių masyvas, kuriame TRUE yra lygus 1, o FALSE - 0. Tada visų masyvų elementai tose pačiose pozicijose padauginami. Kadangi dauginant iš nulio visada gaunamas nulis, į gautą masyvą patenka tik tie elementai, kurių visi kriterijai yra TRUE, todėl tik šie elementai ir yra išskiriami.
Toliau pateiktuose pavyzdžiuose parodyta, kaip veikia ši bendroji formulė.
1 pavyzdys. Kelių stulpelių filtravimas "Excel" programoje
Dar šiek tiek išplėsdami pagrindinę "Excel FILTER" formulę, filtruokime duomenis pagal du stulpelius: Grupė (B stulpelis) ir Laimėjimai (C skiltis).
Šiuo tikslu nustatome šiuos kriterijus: F2 laukelyje įveskite tikslinės grupės pavadinimą ( kriterijai1 ) ir mažiausias reikalaujamas pergalių skaičius F3 grupėje ( kriterijai2 ).
Atsižvelgiant į tai, kad mūsų šaltinio duomenys yra A2:C13 ( masyvas ), grupės yra B2:B13 ( diapazonas1 ), o pergalės - C2:C13 ( diapazonas2 ), formulė yra tokia:
=FILTER(A2:C13, (B2:B13=F2) * (C2:C13>=F3), "Nėra rezultatų")
Taip gausite A grupės žaidėjų, kurie iškovojo 2 ar daugiau pergalių, sąrašą:
2 pavyzdys. Duomenų filtravimas tarp datų
Pirmiausia reikėtų pažymėti, kad "Excel" programoje neįmanoma sukurti bendros formulės filtravimui pagal datą. Įvairiose situacijose kriterijus reikės kurti skirtingai, atsižvelgiant į tai, ar norite filtruoti pagal konkrečią datą, pagal mėnesį, ar pagal metus. Šio pavyzdžio tikslas - parodyti bendrąjį metodą.
Prie mūsų pavyzdinių duomenų pridėsime dar vieną stulpelį, kuriame bus įrašytos paskutinio laimėjimo datos (stulpelis D). Dabar išrinksime laimėjimus, kurie įvyko per tam tikrą laikotarpį, tarkime, nuo gegužės 17 d. iki gegužės 31 d.
Atkreipkite dėmesį, kad šiuo atveju abu kriterijai taikomi tam pačiam intervalui:
=FILTER(A2:D13, (D2:D13>=G2) * (D2:D13<=G3), "Nėra rezultatų")
Kai G2 ir G3 yra datos, tarp kurių reikia filtruoti.
Kelių kriterijų filtras (OR logika)
Norėdami išgauti duomenis pagal daugybinę OR sąlygą, taip pat naudojate logines išraiškas, kaip parodyta ankstesniuose pavyzdžiuose, tačiau jas ne dauginate, o sudedate. Sudėjus išraiškomis grąžintus loginius masyvus, gautame masyve bus 0 įrašų, kurie neatitinka jokių kriterijų (t. y. visi kriterijai yra FALSE), ir tokie įrašai bus išfiltruoti.bent vienas kriterijus yra TRUE, bus išskirtas.
Čia pateikiama bendroji formulė, skirta filtruoti stulpelius naudojant OR logiką:
FILTER(masyvas, ( diapazonas1 = kriterijai1 ) + ( diapazonas2 = kriterijai2 ), "Nėra rezultatų")Kaip pavyzdį, išskirkime žaidėjų, kurie turi šį ar tą. pergalių skaičius.
Darant prielaidą, kad šaltinio duomenys yra A2:C13, laimėjimai - C2:C13, o dominantys laimėjimų skaičiai - F2 ir F3, formulė būtų tokia:
=FILTER(A2:C13, (C2:C13=F2) + (C2:C13=F3), "Rezultatų nėra")
Todėl žinote, kurie žaidėjai laimėjo visas partijas (4), o kurie - nė vienos (0):
Filtravimas pagal kelis AND ir OR kriterijus
Jei reikia taikyti abu kriterijų tipus, prisiminkite šią paprastą taisyklę: AND kriterijus sujunkite su žvaigždute (*), o OR kriterijus - su pliuso ženklu (+).
Pavyzdžiui, norėdami grąžinti sąrašą žaidėjų, kurie turi tam tikrą pergalių skaičių (F2) IR priklauso E2 ARBA E3 paminėtai grupei, sudarykite tokią loginių išraiškų grandinę:
=FILTER(A2:C13, (C2:C13=F2) * ((B2:B13=E2) + (B2:B13=E3)), "Rezultatų nėra")
Gausite tokį rezultatą:
Kaip filtruoti dublikatus "Excel" programoje
Dirbant su didžiuliais darbalapiais arba derinant duomenis iš skirtingų šaltinių, dažnai gali pasitaikyti pasikartojimų.
Jei norite išfiltruoti dublikatai ir išskirkite unikalius elementus, tada naudokite UNIQUE funkciją, kaip paaiškinta aukščiau pateiktoje pamokoje.
Jei jūsų tikslas yra filtruoti dublikatus t. y. išskirtumėte įrašus, kurie pasitaiko daugiau nei vieną kartą, tada naudokite funkciją FILTER kartu su COUNTIFS.
Siekiama gauti visų įrašų pasikartojimų skaičių ir išskirti tuos, kurie yra didesni už 1. Norėdami gauti skaičių, kiekvienam įrašui pateikite tą patį intervalą. kriterijų_diapazonas / kriterijai pora COUNTIFS kaip tai:
FILTRAS( masyvas , COUNTIFS( stulpelis1 , column1, stulpelis2 , stulpelis2 )>1, "Nėra rezultatų")Pavyzdžiui, norėdami išfiltruoti pasikartojančias eilutes iš A2:C20 duomenų pagal visų 3 stulpelių reikšmes, naudokite šią formulę:
=FILTER(A2:C20, COUNTIFS(A2:A20, A2:A20, B2:B20, B2:B20, B2:B20, C2:C20, C2:C20)>1, "Nėra rezultatų")
Patarimas. Jei norite filtruoti dublikatus pagal pagrindiniai stulpeliai , į COUNTIFS funkciją įtraukite tik tuos konkrečius stulpelius.
Kaip išfiltruoti tuščius langus "Excel" programoje
Tuščių langelių filtravimo formulė iš tikrųjų yra "Excel" FILTER formulės su keliais AND kriterijais atmaina. Šiuo atveju tikriname, ar visuose (arba tam tikruose) stulpeliuose yra kokių nors duomenų, ir neįtraukiame eilučių, kuriose bent vienas langelis yra tuščias. Norėdami nustatyti ne tuščius langelius, naudojate operatorių "nelygu" () kartu su tuščia eilute (""), pvz., taip:
FILTER(masyvas, ( stulpelis1 "") * ( stulpelis2 =""), "Nėra rezultatų")Kai šaltinio duomenys yra A2:C12, siekiant išfiltruoti eilutes, kuriose yra vienas ar daugiau tuščių langelių, E3 laukelyje įrašoma ši formulė:
Filtruoti ląsteles, kuriose yra tam tikro teksto
Norėdami išskirti ląsteles, kuriose yra tam tikro teksto, galite naudoti funkciją FILTER kartu su klasikine formule If cell contains:
FILTER(masyvas, ISNUMBER(SEARCH(" tekstas ", diapazonas )), "Nėra rezultatų")Štai kaip tai veikia:
- Funkcija SEARCH ieško nurodytos teksto eilutės nurodytame intervale ir grąžina skaičių (pirmojo simbolio poziciją) arba #VALUE! klaidą (tekstas nerastas).
- Funkcija ISNUMBER konvertuoja visus skaičius į TRUE, o klaidas į FALSE ir gautą loginių reikšmių masyvą perduoda funkcijai įtraukti funkcijos FILTER argumentas.
Šiame pavyzdyje pridėjome Pavardės žaidėjų, esančių B2:B13, įveskite vardo dalį, kurią norime surasti G2, o tada naudokite šią formulę duomenims filtruoti:
=FILTRAS(A2:D13, ISNUMBER(SEARCH(G2, B2:B13)), "Rezultatų nėra")
Rezultatas - formulėje randamos dvi pavardės, kuriose yra žodis "han":
Filtruokite ir skaičiuokite (suma, vidurkis, min, max ir t. t.)
Šauni "Excel" funkcijos FILTER savybė yra ta, kad ji gali ne tik išskirti reikšmes su sąlygomis, bet ir apibendrinti filtruotus duomenis. Šiuo tikslu FILTER derinkite su apibendrinimo funkcijomis, tokiomis kaip SUM, AVERAGE, COUNT, MAX arba MIN.
Pavyzdžiui, norėdami apibendrinti tam tikros F1 grupės duomenis, naudokite šias formules:
Iš viso pergalių:
=SUM(FILTER(C2:C13, B2:B13=F1, 0))
Vidutinis pergalių skaičius:
=VIDURKIS(FILTRAS(C2:C13, B2:B13=F1, 0))
Maksimalus laimėjimų skaičius:
=MAX(FILTER(C2:C13, B2:B13=F1, 0))
Minimalus laimėjimų skaičius:
=MIN(FILTRAS(C2:C13, B2:B13=F1, 0))
Atkreipkite dėmesį į tai, kad visose formulėse kaip reikšmę naudojame nulį. if_empty argumentas, todėl formulės grąžins 0, jei nebus rasta kriterijų atitinkančių reikšmių. Pateikus bet kokį tekstą, pvz., "Nėra rezultatų", bus padaryta klaida #VALUE, o tai, žinoma, yra paskutinis dalykas, kurio norite :)
Didžiosios raidės jautri FILTER formulė
Standartinė "Excel" FILTER formulė neskiria mažųjų ir didžiųjų raidžių, t. y. ji neskiria mažųjų ir didžiųjų simbolių. Jei norite atskirti teksto raidę, įterpkite EXACT funkciją į įtraukti argumentas. Tai privers FILTER atlikti loginį testą atsižvelgiant į mažąsias ir didžiąsias raides:
FILTER(masyvas, EXACT( diapazonas , kriterijai ), "Nėra rezultatų")Tarkime, turite abi grupes A ir a ir norite išskirti įrašus, kurių grupė yra mažoji raidė "a". Norėdami tai padaryti, naudokite šią formulę, kurioje A2:C13 yra šaltinio duomenys, o B2:B13 - filtruojamos grupės:
=FILTER(A2:C13, EXACT(B2:B13, "a"), "Rezultatų nėra")
Kaip įprasta, tikslinę grupę galite įvesti iš anksto nustatytoje ląstelėje, pavyzdžiui, F1, ir naudoti šios ląstelės nuorodą, o ne iš anksto užkoduotą tekstą:
=FILTER(A2:C13, EXACT(B2:B13, F1), "Rezultatų nėra")
Kaip filtruoti duomenis ir grąžinti tik tam tikrus stulpelius
Dažniausiai "Excel" naudotojai nori filtruoti visus stulpelius pagal vieną formulę. Tačiau jei jūsų šaltinio lentelėje yra dešimtys ar net šimtai stulpelių, tikrai galite norėti apriboti rezultatus iki kelių svarbiausių stulpelių.
1 pavyzdys. Filtruoti kai kuriuos gretimus stulpelius
Jei norite, kad kai kurie kaimyniniai stulpeliai būtų rodomi FILTRUOTOJO rezultatuose, įtraukite tik tuos stulpelius į masyvas nes nuo šio argumento priklauso, kuriuos stulpelius grąžinti.
Pagrindiniame FILTER formulės pavyzdyje, tarkime, jei norite grąžinti pirmuosius 2 stulpelius ( Pavadinimas ir Grupė ). Taigi, jūs pateikiate A2:B13 masyvas argumentas:
=FILTER(A2:B13, B2:B13=F1, "Nėra rezultatų")
Kaip rezultatą gausime F1 apibrėžtos tikslinės grupės dalyvių sąrašą:
2 pavyzdys. Nesiribojančių stulpelių filtravimas
Jei norite, kad funkcija FILTER grąžintų nesusijusius stulpelius, naudokite šią gudrią gudrybę:
- Sukurkite FILTER formulę su norima sąlyga (-omis), naudodami visą lentelę masyvas .
- Įterpkite pirmiau pateiktą formulę į kitą FILTER funkciją. Norėdami sukonfigūruoti funkciją "wrapper", naudokite TRUE ir FALSE reikšmių arba 1 ir 0 reikšmių masyvo konstantą. įtraukti argumentas, kur TRUE (1) žymi stulpelius, kuriuos reikia išsaugoti, o FALSE (0) žymi stulpelius, kuriuos reikia pašalinti.
Pavyzdžiui, norėdami grąžinti tik Vardai (1 stulpelis) ir Laimėjimai (3 stulpelis), mes naudojame {1,0,1} arba {TRUE,FALSE,TRUE} įtraukti išorinės FILTER funkcijos argumentas:
=FILTRAS(FILTER(A2:C13, B2:B13=F1), {1,0,1})
Arba
=FILTRAS(FILTER(A2:C13, B2:B13=F1), {TRUE,FALSE,TRUE})
Kaip apriboti eilučių, kurias grąžina funkcija FILTER, skaičių
Jei FILTER formulėje randama gana daug rezultatų, bet jūsų darbalapyje yra mažai vietos ir negalite ištrinti toliau pateiktų duomenų, galite apriboti eilučių, kurias grąžina FILTER funkcija, skaičių.
Pažiūrėkime, kaip tai veikia, pateikdami paprastos formulės, pagal kurią iš tikslinės grupės išrenkami F1 žaidėjai, pavyzdį:
=FILTRAS(A2:C13, B2:B13=F1)
Pirmiau pateikta formulė išveda visus rastus įrašus, t. y. mūsų atveju 4 eilutes. Tačiau tarkime, kad turite vietos tik dviem eilutėms. Norėdami išvesti tik pirmąsias 2 rastas eilutes, turite padaryti štai ką:
- Įterpkite FILTER formulę į masyvas funkcijos INDEX argumentas.
- Dėl eilutės_num argumentą INDEX, naudokite vertikalią masyvo konstantą, pavyzdžiui, {1;2}. Ji nustato, kiek eilučių grąžinti (mūsų atveju - 2).
- Dėl column_num argumentą, naudokite horizontalią masyvo konstantą, pavyzdžiui, {1,2,3}. Ji nurodo, kuriuos stulpelius grąžinti (šiame pavyzdyje - pirmuosius 3 stulpelius).
- Norėdami pasirūpinti galimomis klaidomis, kai nerandama kriterijų atitinkančių duomenų, galite formulę papildyti funkcija IFERROR.
Pilna formulė yra tokios formos:
=IFERROR(INDEX(FILTER(A2:C13, B2:B13=F1), {1;2}, {1,2,3}), "Nėra rezultato")
Dirbant su didelėmis lentelėmis rašyti masyvo konstantas rankiniu būdu gali būti gana sudėtinga. Jokių problemų, funkcija SEQUENCE gali automatiškai sugeneruoti eilės numerius:
=IFERROR(INDEX(FILTER(A2:C13, B2:B13=F1), SEQUENCE(2), SEQUENCE(1, COLUMNS(A2:C13))), "Nėra rezultato")
Pirmuoju SEQUENCE sukuriamas vertikalus masyvas, kuriame yra tiek eilės numerių, kiek nurodyta pirmajame (ir vieninteliame) argumente. Antrasis SEQUENCE naudoja funkciją COLUMNS, kad suskaičiuotų duomenų rinkinio stulpelių skaičių, ir sukuria lygiavertį horizontalų masyvą.
Patarimas. Norėdami grąžinti duomenis iš konkretūs stulpeliai , o ne visus stulpelius, horizontalioje masyvo konstantoje, kurią naudojate column_num argumentą INDEX, įtraukite tik tuos konkrečius skaičius. Pavyzdžiui, norėdami išgauti duomenis iš 1-ojo ir 3-iojo stulpelių, naudokite {1,3}.
Neveikia "Excel" filtravimo funkcija
Kai "Excel" FILTER formulėje atsiranda klaida, greičiausiai tai bus viena iš šių klaidų:
#CALC! klaida
Atsiranda, jei pasirenkamas if_empty argumentas praleidžiamas, ir nerandama jokių kriterijų atitinkančių rezultatų. Priežastis ta, kad šiuo metu "Excel" nepalaiko tuščių masyvų. Kad išvengtumėte tokių klaidų, būtinai visada apibrėžkite if_empty reikšmę savo formulėse.
#VALUE klaida
Pasitaiko, kai masyvas ir įtraukti argumentas turi nesuderinamus matmenis.
#N/A, #VALUE ir t. t.
Gali pasitaikyti įvairių klaidų, jei tam tikra reikšmė įtraukti argumentas yra klaida arba jo negalima konvertuoti į loginę reikšmę.
#NAME klaida
Pasitaiko, kai bandoma naudoti FILTER senesnėje "Excel" versijoje. Nepamirškite, kad tai nauja funkcija, kurią galima naudoti tik "Office 365" ir "Excel 2021".
Naujojoje "Excel" programoje, jei netyčia neteisingai parašote funkcijos pavadinimą, atsiranda #NAME klaida.
#SPILL klaida
Dažniausiai ši klaida pasitaiko, jei vienas ar daugiau išsiliejimo intervalo langelių nėra visiškai tušti. Norėdami ją ištaisyti, tiesiog išvalykite arba ištrinkite ne tuščius langelius. Norėdami ištirti ir išspręsti kitus atvejus, skaitykite #SPILL! klaida "Excel": ką ji reiškia ir kaip ištaisyti.
#REF! klaida
Pasitaiko, kai FILTER formulė naudojama tarp skirtingų sąsiuvinių, o pradinis sąsiuvinis uždaromas.
Štai kaip dinamiškai pildyti duomenis "Excel" programoje. Dėkoju, kad perskaitėte, ir tikiuosi, kad kitą savaitę susitiksime mūsų tinklaraštyje!
Atsisiųsti praktikos sąsiuvinį
Filtravimas "Excel" programoje naudojant formules (.xlsx failas)