Excel FILTER funkció - dinamikus szűrés képletekkel

  • Ossza Meg Ezt
Michael Brown

Ebben a gyors leckében megtanulhatja, hogyan szűrhet az Excelben dinamikusan képletekkel. Példák a duplikátumok, bizonyos szöveget tartalmazó cellák szűrésére, több kritériummal és még sok másra.

Hogyan szokott szűrni az Excelben? Többnyire az automatikus szűrővel, összetettebb esetekben pedig a speciális szűrővel. Bár ezek a módszerek gyorsak és hatékonyak, van egy jelentős hátrányuk - nem frissülnek automatikusan, ha az adatok változnak, ami azt jelenti, hogy újra kell tisztítani és szűrni. A FILTER funkció bevezetése az Excel 365-ben egy régóta várt alternatívája lesz a következőknek.a hagyományos funkciókat. Velük ellentétben az Excel képletek automatikusan újraszámítódnak minden egyes munkalap-változáskor, így a szűrőt csak egyszer kell beállítania!

    Excel FILTER funkció

    Az Excel FILTER funkciója egy adatsor szűrésére szolgál az Ön által megadott kritériumok alapján.

    A függvény a Dinamikus tömbök függvények kategóriájába tartozik. Az eredmény egy értékekből álló tömb, amely automatikusan kiárad egy cellatartományba, kezdve attól a cellától, ahol a képletet beírta.

    A FILTER függvény szintaxisa a következő:

    FILTER(array, include, [if_empty])

    Hol:

    • Array (kötelező) - a szűrni kívánt értékek tartománya vagy tömbje.
    • Tartalmazza a címet. (kötelező) - a bólés tömbként megadott kritériumok (TRUE és FALSE értékek).

      A magasságának (ha az adatok oszlopokban vannak) vagy a szélességének (ha az adatok sorokban vannak) meg kell egyeznie a array érv.

    • If_empty (opcionális) - az érték, amelyet akkor kell visszaadni, ha nincs olyan bejegyzés, amely megfelel a kritériumoknak.

    A FILTER funkció csak az Excel for Microsoft 365 és az Excel 2021 programban érhető el. Az Excel 2019, Excel 2016 és korábbi verziókban nem támogatott.

    Alapvető Excel FILTER formula

    Kezdetnek beszéljünk meg néhány nagyon egyszerű esetet, hogy jobban megértsük, hogyan működik egy Excel-képlet az adatok szűrésére.

    Az alábbi adathalmazból, tegyük fel, hogy ki akarjuk nyerni azokat a rekordokat, amelyekben egy adott érték van a Csoport , oszlop, mondjuk a C csoport. Ehhez a B2:B13="C" kifejezést adjuk meg a tartalmazza a címet. argumentummal, amely egy szükséges Boolean tömböt hoz létre, ahol a TRUE a "C" értékeknek felel meg.

    =FILTER(A2:C13, B2:B13="C", "Nincs eredmény")

    A gyakorlatban sokkal kényelmesebb, ha a kritériumokat egy külön cellába, például az F1-be írja be, és cellahivatkozást használ ahelyett, hogy az értéket közvetlenül a képletbe kódolná:

    =FILTER(A2:C13, B2:B13=F1, "Nincs eredmény")

    Az Excel Szűrés funkciójával ellentétben a funkció nem változtat az eredeti adatokon. A szűrt rekordokat az úgynevezett kiömlő tartományba (az alábbi képernyőképen E4:G7) vonja ki, kezdve a képlet beírásának cellájával:

    Ha egyetlen rekord sem felel meg a megadott feltételeknek, a képlet a megadott értéket adja vissza. if_empty argumentum, ebben a példában "Nincs eredmény":

    Ha inkább semmi sem tér vissza ebben az esetben az utolsó argumentumként egy üres karakterláncot ("") adjon meg:

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

    Abban az esetben, ha adatai rendszerezve vannak vízszintesen balról jobbra, ahogy az alábbi képernyőképen látható, a FILTER funkció is szépen működik. Csak győződjön meg róla, hogy megfelelő tartományokat határoz meg a array és tartalmazza a címet. argumentumokat, hogy a forrás tömb és a Boolean tömb azonos szélességű legyen:

    =FILTER(B2:M4, B3:M3= B7, "Nincs eredmény")

    Excel FILTER funkció - használati megjegyzések

    Ahhoz, hogy hatékonyan szűrhessen az Excelben képletekkel, itt van néhány fontos pont, amit figyelembe kell vennie:

    • A FILTER funkció automatikusan függőlegesen vagy vízszintesen kiönti az eredményeket a munkalapon, attól függően, hogy az eredeti adatok hogyan vannak elrendezve. Ezért győződjön meg róla, hogy mindig van elég üres cella lent és jobbra, különben #SPILL hibát kap.
    • Az Excel FILTER függvény eredményei dinamikusak, azaz automatikusan frissülnek, amikor az eredeti adathalmazban az értékek megváltoznak. array argumentum nem frissül, amikor a forrásadatokhoz új bejegyzések kerülnek hozzáadásra. Ha azt szeretné, hogy a array automatikusan átméretezni, majd Excel-táblázattá alakítani és strukturált hivatkozásokkal képleteket készíteni, vagy dinamikus névtartományt létrehozni.

    Hogyan kell szűrni az Excelben - képlet példák

    Most, hogy már tudja, hogyan működik egy alapvető Excel-szűrőformula, itt az ideje, hogy betekintést nyerjen abba, hogyan lehet kibővíteni azt összetettebb feladatok megoldására.

    Szűrés több kritériummal (ÉS logika)

    Több kritériummal történő szűréshez két vagy több logikai kifejezést kell megadni a tartalmazza a címet. érv:

    FILTER(array, ( range1 = kritériumok1 ) * ( range2 = kritérium2 ), "Nincs eredmény")

    A szorzási művelet a tömböket a ÉS-logika , biztosítva, hogy csak azok a rekordok, amelyek megfelelnek az összes kritérium Technikailag ez így működik:

    Az egyes logikai kifejezések eredménye egy Boolean-értékekből álló tömb, ahol a TRUE egyenlő 1, a FALSE pedig 0. Ezután az összes tömb azonos pozícióban lévő elemeit megszorozzuk. Mivel a nullával való szorzás mindig nullát ad, csak azok az elemek kerülnek az eredményül kapott tömbbe, amelyek esetében az összes kritérium TRUE, és következésképpen csak ezek az elemek kerülnek ki.

    Az alábbi példák ezt az általános képletet mutatják be működés közben.

    Példa 1. Több oszlop szűrése Excelben

    Az Excel FILTER alapképletét egy kicsit tovább bővítve, szűrjük az adatokat két oszlop szerint: Csoport (B oszlop) és Győzelmek (C oszlop).

    Ehhez a következő feltételeket állítjuk be: írjuk be a célcsoport nevét az F2-be ( kritériumok1 ) és az F3-ban a minimálisan szükséges győzelmek száma ( kritérium2 ).

    Tekintettel arra, hogy a forrásadataink A2:C13 ( array ), a csoportok a B2:B13-ban ( range1 ), a győzelmek pedig a C2:C13-ban ( range2 ), a képlet a következő formát ölti:

    =FILTER(A2:C13, (B2:B13=F2) * (C2:C13>=F3), "Nincs eredmény")

    Ennek eredményeképpen megkapod az A csoport azon játékosainak listáját, akik 2 vagy több győzelmet szereztek:

    Példa 2. Adatok szűrése dátumok között

    Először is meg kell jegyeznünk, hogy nem lehet általános képletet készíteni az Excelben a dátum szerinti szűréshez. A különböző helyzetekben a kritériumokat másképp kell felépíteni, attól függően, hogy egy adott dátum, hónap vagy év szerint szeretnénk szűrni. A példa célja az általános megközelítés bemutatása.

    A mintaadatainkhoz hozzáadunk még egy oszlopot, amely az utolsó győzelem dátumát tartalmazza (D oszlop). És most kivonjuk azokat a győzelmeket, amelyek egy adott időszakban, mondjuk május 17. és május 31. között történtek.

    Vegye figyelembe, hogy ebben az esetben mindkét kritérium ugyanarra a tartományra vonatkozik:

    =FILTER(A2:D13, (D2:D13>=G2) * (D2:D13<=G3), "Nincs eredmény")

    Ahol G2 és G3 a szűrendő dátumok.

    Szűrés több kritériummal (VAGY logika)

    A többszörös VAGY feltételen alapuló adatok kinyeréséhez szintén az előző példákban bemutatott logikai kifejezéseket használjuk, de szorzás helyett összeadjuk őket. Amikor a kifejezések által visszaadott Boolean tömböket összegezzük, a kapott tömbben 0 lesz az olyan bejegyzések száma, amelyek nem felelnek meg egyik feltételnek sem (azaz minden feltétel FALSE), és az ilyen bejegyzések kiszűrésre kerülnek. Azok a bejegyzések, amelyeknél alegalább egy kritérium TRUE (igaz), kivonásra kerül.

    Íme az általános képlet az oszlopok szűrésére a VAGY logikával:

    FILTER(array, ( range1 = kritériumok1 ) + ( range2 = kritérium2 ), "Nincs eredmény")

    Példának okáért vegyük ki azoknak a játékosoknak a listáját, akiknek van ez vagy az győzelmek száma.

    Feltételezve, hogy a forrásadatok az A2:C13, a győzelmek a C2:C13, és az érdekes győzelmi számok az F2 és F3, a képlet a következőképpen néz ki:

    =FILTER(A2:C13, (C2:C13=F2) + (C2:C13=F3), "Nincs eredmény")

    Ennek eredményeként megtudhatja, hogy melyik játékosok nyerték meg az összes mérkőzést (4), és melyikek nem nyertek egyet sem (0):

    Szűrés többszörös ÉS és VAGY kritériumok alapján

    Abban az esetben, ha mindkét kritériumtípust alkalmaznia kell, ne feledje ezt az egyszerű szabályt: az ÉS kritériumot csillaggal (*), a VAGY kritériumot pedig plusz jellel (+) kösse össze.

    Ha például azon játékosok listáját szeretné visszaküldeni, akiknek adott számú győzelmük van (F2) ÉS az E2 VAGY E3-ban említett csoportba tartoznak, akkor a következő logikai kifejezések láncolatát kell felépítenie:

    =FILTER(A2:C13, (C2:C13=F2) * ((B2:B13=E2) + (B2:B13=E3)), "Nincs eredmény")

    És a következő eredményt kapja:

    Hogyan lehet szűrni a duplikátumokat az Excelben

    Ha hatalmas munkalapokkal dolgozol, vagy különböző forrásokból származó adatokat kombinálsz, gyakran előfordulhat, hogy duplikációk kerülnek be.

    Ha a következőre vágyik kiszűrni duplikátumok és az egyedi elemek kivonása, majd az UNIQUE függvény használata a fent említett bemutatóban leírtak szerint.

    Ha az a célod, hogy duplikátumok szűrése , azaz a többször előforduló bejegyzések kivonása, majd a FILTER funkciót a COUNTIFS funkcióval együtt használja.

    Az ötlet az, hogy megkapjuk az összes rekord előfordulási számát, és kivonjuk az 1-nél nagyobbakat.A számok megkapásához minden egyes rekordhoz ugyanazt a tartományt kell megadnunk. criteria_range / kritériumok COUNTIFS pár, mint ez:

    FILTER( array , COUNTIFS( column1 , column1, column2 , column2 )>1, "Nincs eredmény")

    Ha például az A2:C20 adatokból a duplikált sorokat szeretné kiszűrni mindhárom oszlop értékei alapján, a következő képletet kell használni:

    =FILTER(A2:C20, COUNTIFS(A2:A20, A2:A20, B2:B20, B2:B20, C2:C20, C2:C20)>1, "Nincs eredmény")

    Tipp. A duplikátumok szűrése a duplikátumok értékei alapján a kulcsoszlopok , csak ezeket a konkrét oszlopokat tartalmazza a COUNTIFS függvény.

    Hogyan lehet kiszűrni az üres részeket az Excelben

    Az üres cellák kiszűrésére szolgáló képlet valójában az Excel FILTER képletének egy változata, többszörös ÉS feltételekkel. Ebben az esetben azt vizsgáljuk, hogy minden (vagy bizonyos) oszlopban van-e adat, és kizárjuk azokat a sorokat, amelyekben legalább egy cella üres. A nem üres cellák azonosításához a "nem egyenlő" operátort () és egy üres karakterláncot ("") használjuk a következőképpen:

    FILTER(array, ( column1 "") * ( column2 =""), "Nincs eredmény")

    Az A2:C12 forrásadatokkal az egy vagy több üres cellát tartalmazó sorok kiszűréséhez az E3-ban a következő képletet kell megadni:

    Meghatározott szöveget tartalmazó cellák szűrése

    Bizonyos szöveget tartalmazó cellák kiemeléséhez használhatja a FILTER funkciót a klasszikus If cell contains formulával együtt:

    FILTER(array, ISNUMBER(SEARCH(" szöveg ", tartomány )), "No results")

    Így működik:

    • A SEARCH függvény egy megadott szöveges karakterláncot keres egy adott tartományban, és vagy egy számot (az első karakter pozícióját) vagy #VALUE! hibát (a szöveg nem található) ad vissza.
    • Az ISNUMBER függvény az összes számot TRUE-ra, a hibákat pedig FALSE-ra konvertálja, és az így kapott Boolean tömböt átadja a tartalmazza a címet. a FILTER függvény argumentuma.

    Ehhez a példához hozzáadtuk a Vezetéknevek játékosok B2:B13-as listáján, a G2-ben beírjuk a név azon részét, amelyet meg akarunk találni, majd a következő képlet segítségével szűrjük az adatokat:

    =FILTER(A2:D13, ISNUMBER(SEARCH(G2, B2:B13)), "Nincs eredmény")

    A képlet eredményeként a "han" szót tartalmazó két vezetéknevet kapja meg:

    Szűrés és számítás (összeg, átlag, minimum, maximum stb.)

    Az Excel FILTER funkciójának egyik legjobb tulajdonsága, hogy nem csak a feltételekkel rendelkező értékek kinyerésére képes, hanem a szűrt adatok összegzésére is. Ehhez kombinálja a FILTER-t olyan aggregáló funkciókkal, mint a SUM, AVERAGE, COUNT, MAX vagy MIN.

    Ha például az F1-ben egy adott csoport adatait szeretné összesíteni, használja a következő képleteket:

    Összes győzelem:

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

    Átlagos győzelmek:

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

    Maximális győzelem:

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

    Minimális győzelem:

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

    Kérjük, figyeljünk arra, hogy minden képletben nullát használunk a if_empty argumentummal, így a képletek 0-t adnának vissza, ha nem találnak a kritériumoknak megfelelő értékeket. Bármilyen szöveg megadása, mint például "Nincs eredmény", #VALUE hibát eredményezne, ami nyilvánvalóan az utolsó dolog, amit szeretnénk :)

    Nagybetű-érzékeny FILTER formula

    A szabványos Excel FILTER formula nem tesz különbséget a kis- és nagybetűs karakterek között, azaz nem tesz különbséget a kis- és nagybetűs karakterek között. A szöveg esetének megkülönböztetéséhez az EXACT függvényt fészkelje be a(z) tartalmazza a címet. Ez arra kényszeríti a FILTER-t, hogy a logikai teszteket a nagy- és kisbetűket figyelembe véve végezze el:

    FILTER(array, EXACT( tartomány , kritériumok ), "Nincs eredmény")

    Tegyük fel, hogy mindkét csoport A és a és olyan rekordokat szeretne kivonni, ahol a csoport a kisbetűs "a". Ehhez használja a következő képletet, ahol A2:C13 a forrásadatok és B2:B13 a szűrendő csoportok:

    =FILTER(A2:C13, EXACT(B2:B13, "a"), "Nincs eredmény")

    A szokásos módon a célcsoportot egy előre definiált cellába, például az F1-be is beírhatja, és a keményen kódolt szöveg helyett ezt a cellahivatkozást használhatja:

    =FILTER(A2:C13, EXACT(B2:B13, F1), "Nincs eredmény")

    Hogyan szűrhetjük az adatokat és adhatunk vissza csak bizonyos oszlopokat?

    A legtöbb esetben az Excel-felhasználók az összes oszlop egyetlen képlettel történő szűrését szeretnék. Ha azonban a forrás táblázata több tíz vagy akár több száz oszlopot tartalmaz, akkor mindenképpen szeretné az eredményeket néhány legfontosabb oszlopra korlátozni.

    Példa 1. Néhány szomszédos oszlop szűrése

    Abban az esetben, ha azt szeretné, hogy néhány szomszédos oszlop megjelenjen a FILTER eredményében, csak ezeket az oszlopokat tartalmazza a array mert ez az argumentum határozza meg, hogy mely oszlopokat kell visszaadni.

    Az alapvető FILTER formula példájában, tegyük fel, hogy az első 2 oszlopot szeretnénk visszaadni ( Név és Csoport Tehát az A2:B13 értékeket kell megadni a array érv:

    =FILTER(A2:B13, B2:B13=F1, "Nincs eredmény")

    Ennek eredményeként megkapjuk az F1-ben meghatározott célcsoport résztvevőinek listáját:

    Példa 2. Nem szomszédos oszlopok szűrése

    Ahhoz, hogy a FILTER függvény nem egybefüggő oszlopokat adjon vissza, használja ezt az okos trükköt:

    1. Készítsen egy FILTER képletet a kívánt feltétel(ek)kel a teljes táblázatot használva a következőkhöz array .
    2. Foglalja a fenti képletet egy másik FILTER függvénybe. A "wrapper" függvény konfigurálásához használjon egy TRUE és FALSE értékekből vagy 1-es és 0-s értékekből álló tömbi állandót a TRUE és FALSE értékek vagy 1 és 0 értékek számára. tartalmazza a címet. argumentum, ahol TRUE (1) jelöli a megtartandó oszlopokat, FALSE (0) pedig a kizárandó oszlopokat.

    Például, ha csak a Nevek (1. oszlop) és Győzelmek (3. oszlop), a {1,0,1} vagy {TRUE,FALSE,TRUE} értékeket használjuk a tartalmazza a címet. a külső FILTER függvény argumentuma:

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

    Vagy

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

    Hogyan korlátozzuk a FILTER függvény által visszaadott sorok számát?

    Ha a FILTER képlet elég sok eredményt talál, de a munkalapon korlátozott a hely, és nem tudja törölni az alatta lévő adatokat, akkor korlátozhatja a FILTER függvény által visszaadott sorok számát.

    Lássuk, hogyan működik egy egyszerű képlet példáján, amely az F1-ben a célcsoportba tartozó játékosokat húzza:

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

    A fenti képlet az összes talált rekordot kiadja, esetünkben 4 sort. De tegyük fel, hogy csak kettőnek van helye. Ha csak az első 2 talált sort szeretné kiadni, a következőt kell tennie:

    • A FILTER képletet illessze be a array az INDEX függvény argumentuma.
    • A row_num argumentumában használjon egy függőleges tömbi állandót, például {1;2}. Ez határozza meg, hogy hány sort adjon vissza (esetünkben 2-t).
    • A column_num argumentummal használjon egy vízszintes tömbkonstansot, például {1,2,3}. Ez adja meg, hogy mely oszlopokat adja vissza (ebben a példában az első 3 oszlopot).
    • Az esetleges hibák kezelésére, ha nem talál a kritériumoknak megfelelő adatokat, a képletet az IFERROR függvénybe csomagolhatja.

    A teljes képlet a következő formát ölti:

    =IFERROR(INDEX(FILTER(A2:C13, B2:B13=F1), {1;2}, {1,2,3}), "Nincs eredmény")

    Ha nagy táblázatokkal dolgozunk, a tömbállandók kézi írása elég nehézkes lehet. Nem probléma, a SEQUENCE függvény automatikusan generálja a sorszámokat:

    =IFERROR(INDEX(FILTER(A2:C13, B2:B13=F1), SEQUENCE(2), SEQUENCE(1, COLUMNS(A2:C13))), "Nincs eredmény"))

    Az első SEQUENCE egy függőleges tömböt hoz létre, amely annyi sorszámot tartalmaz, ahányat az első (és egyetlen) argumentumban megadtunk. A második SEQUENCE a COLUMNS függvényt használja az adatkészlet oszlopainak megszámlálására, és ezzel egyenértékű vízszintes tömböt hoz létre.

    Tipp. Az adatok visszaadása a specifikus oszlopok , nem az összes oszlopot, a vízszintes tömbi konstansban, amelyet a column_num argumentummal csak ezeket a konkrét számokat tartalmazza. Például az 1. és 3. oszlopból történő adatkivonáshoz használja a {1,3} értéket.

    Az Excel FILTER funkció nem működik

    Abban a helyzetben, amikor az Excel FILTER képlet hibát eredményez, valószínűleg az alábbiak egyike lesz:

    #CALC! hiba

    Akkor következik be, ha az opcionális if_empty argumentumot elhagyja, és nem talál a kritériumoknak megfelelő eredményeket. Ennek oka, hogy az Excel jelenleg nem támogatja az üres tömböket. Az ilyen hibák elkerülése érdekében mindig definiálja a if_empty értéket a képleteidben.

    #VALUE hiba

    Akkor következik be, amikor a array és tartalmazza a címet. érv összeegyeztethetetlen dimenziókkal rendelkezik.

    #N/A, #VALUE stb.

    Különböző hibák léphetnek fel, ha a tartalmazza a címet. argumentum hibás vagy nem konvertálható Boolean értékké.

    #NAME hiba

    Akkor fordul elő, amikor megpróbálja használni a FILTER-t az Excel egy régebbi verziójában. Ne feledje, hogy ez egy új funkció, amely csak az Office 365-ben és az Excel 2021-ben érhető el.

    Az új Excelben #NAME hiba lép fel, ha véletlenül elírja a függvény nevét.

    #SPILL hiba

    Leggyakrabban akkor fordul elő ez a hiba, ha a kiöntési tartomány egy vagy több cellája nem teljesen üres. A hiba kijavításához egyszerűen törölje vagy törölje a nem üres cellákat. Más esetek kivizsgálásához és megoldásához lásd: #SPILL! hiba az Excelben: mit jelent és hogyan javítható.

    #REF! hiba

    Akkor fordul elő, amikor egy FILTER képletet használnak különböző munkafüzetek között, és a forrás munkafüzetet bezárják.

    Így lehet dinamikusan adatot iktatni az Excelben. Köszönöm, hogy elolvastad, és remélem, jövő héten találkozunk a blogon!

    Gyakorlati munkafüzet letöltése

    Szűrés Excelben képletekkel (.xlsx fájl)

    Michael Brown elkötelezett technológiai rajongó, aki szenvedélyesen egyszerűsíti a bonyolult folyamatokat szoftvereszközök segítségével. A technológiai iparban szerzett több mint egy évtizedes tapasztalatával a Microsoft Excel és az Outlook, valamint a Google Táblázatok és a Dokumentumok területén fejlesztette tudását. Michael blogja célja, hogy megossza tudását és szakértelmét másokkal, könnyen követhető tippeket és oktatóanyagokat adva a termelékenység és a hatékonyság javításához. Akár tapasztalt szakember, akár kezdő, Michael blogja értékes betekintést és gyakorlati tanácsokat kínál, amelyek segítségével a legtöbbet hozhatja ki ezekből az alapvető szoftvereszközökből.