Satura rādītājs
Šajā īsajā nodarbībā uzzināsiet, kā Excel dinamiski filtrēt, izmantojot formulas. Piemēri, kā filtrēt dubultus, šūnas, kas satur noteiktu tekstu, ar vairākiem kritērijiem un citiem.
Kā jūs parasti filtrējat programmā Excel? Lielākoties, izmantojot automātisko filtru un sarežģītākos scenārijos - uzlaboto filtru. Tā kā šīs metodes ir ātras un jaudīgas, tām ir viens būtisks trūkums - tās neatjauninās automātiski, kad mainās dati, kas nozīmē, ka jums būtu jātīra un jāfiltrē vēlreiz. Funkcijas FILTRĒTĀJS ieviešana programmā Excel 365 kļūst par ilgi gaidītu alternatīvu.Atšķirībā no tām Excel formulas tiek pārrēķinātas automātiski pēc katras darblapas maiņas, tāpēc filtrs būs jāiestata tikai vienu reizi!
Excel FILTER funkcija
FILTER funkciju programmā Excel izmanto, lai filtrētu datu diapazonu, pamatojoties uz norādītajiem kritērijiem.
Šī funkcija pieder dinamisko masīvu funkciju kategorijai. Rezultāts ir vērtību masīvs, kas automātiski izplūst šūnu diapazonā, sākot no šūnas, kurā ievadīta formula.
Funkcijas FILTER sintakse ir šāda:
FILTER(array, include, [if_empty])Kur:
- Masīvs (obligāts) - vērtību diapazons vai masīvs, ko vēlaties filtrēt.
- Iekļaut (obligāts) - kritēriji, kas norādīti kā Boolean masīvs (TRUE un FALSE vērtības).
Tās augstumam (ja dati ir slejās) vai platumam (ja dati ir rindās) jābūt vienādam ar to, kas ir vienāds ar masīvs arguments.
- If_empty (nav obligāti) - vērtība, kas jāatgriež, ja neviens ieraksts neatbilst kritērijiem.
Funkcija FILTRĒT ir pieejama tikai programmā Excel for Microsoft 365 un Excel 2021. Programmā Excel 2019, Excel 2016 un agrākajās versijās tā nav atbalstīta.
Pamata Excel FILTER formula
Vispirms aplūkosim dažus ļoti vienkāršus gadījumus, lai labāk izprastu, kā darbojas Excel formula datu filtrēšanai.
Pieņemsim, ka no turpmāk norādītās datu kopas vēlaties iegūt ierakstus ar konkrētu vērtību laukā Grupa , slejā, teiksim, grupā C. Lai to izdarītu, mēs sniedzam izteicienu B2:B13="C". iekļaut argumentu, kas radīs vajadzīgo Boolean masīvu, kurā TRUE atbilst "C" vērtībām.
=FILTER(A2:C13, B2:B13="C", "Nav rezultātu")
Praksē ērtāk ir ievadīt kritērijus atsevišķā šūnā, piemēram, F1, un izmantot šūnas atsauci, nevis ierakstīt vērtību tieši formulā:
=FILTER(A2:C13, B2:B13=F1, "Nav rezultātu")
Atšķirībā no Excel filtra funkcijas šī funkcija neveic nekādas izmaiņas sākotnējos datos. Tā izvelk filtrētos ierakstus tā sauktajā izplūdes diapazonā (E4:G7 attēlā zemāk), sākot no šūnas, kurā ir ievadīta formula:
Ja neviens ieraksts neatbilst norādītajiem kritērijiem, formula atgriež vērtību, ko ievadījāt laukā if_empty argumentu, šajā piemērā "Nav rezultātu":
Ja vēlaties atgriezt neko šajā gadījumā kā pēdējo argumentu norādiet tukšu virkni (""):
=FILTRS(A2:C13, B2:B13=F1, "")
Ja jūsu dati ir organizēti horizontāli no kreisās puses uz labo, kā parādīts zemāk redzamajā ekrānšāviņā, arī FILTRĒTRA funkcija darbosies labi. Tikai pārliecinieties, ka esat definējis atbilstošus diapazonus. masīvs un iekļaut argumentus, lai avota masīvam un garastāvokļa masīvam būtu vienāds platums:
=FILTER(B2:M4, B3:M3= B7, "Nav rezultātu")
Excel FILTER funkcija - lietošanas piezīmes
Lai efektīvi filtrētu programmā Excel, izmantojot formulas, šeit ir daži svarīgi punkti, kas jāņem vērā:
- Filtrēšanas funkcija automātiski izlej rezultātus darblapā vertikāli vai horizontāli atkarībā no tā, kā ir sakārtoti sākotnējie dati. Tāpēc pārliecinieties, vai vienmēr ir pietiekami daudz tukšu šūnu lejup un pa labi, pretējā gadījumā saņemsiet #SPILL kļūdu.
- Excel FILTER funkcijas rezultāti ir dinamiski, t. i., tie tiek automātiski atjaunināti, kad mainās sākotnējā datu kopuma vērtības. Tomēr diapazons, kas tiek sniegts funkcijai masīvs arguments netiek atjaunināts, kad avota datiem tiek pievienoti jauni ieraksti. Ja vēlaties, lai masīvs lai automātiski mainītu lielumu, pēc tam pārveidojiet to par Excel tabulu un izveidojiet formulas ar strukturētām atsaucēm vai izveidojiet dinamisku nosaukumu diapazonu.
Kā filtrēt programmā Excel - formulu piemēri
Tagad, kad zināt, kā darbojas Excel filtra pamatformula, ir pienācis laiks gūt ieskatu par to, kā to var paplašināt, lai risinātu sarežģītākus uzdevumus.
Filtrēšana ar vairākiem kritērijiem (AND loģika)
Lai filtrētu datus, izmantojot vairākus kritērijus, ievadiet divas vai vairākas loģiskās izteiksmes. iekļaut arguments:
FILTER(masīvs, ( diapazons1 = kritēriji1 ) * ( diapazons2 = kritēriji2 ), "Nav rezultātu")Ar reizināšanas operāciju apstrādā masīvus ar AND loģika , nodrošinot, ka tiek saglabāti tikai tie ieraksti, kas atbilst visi kritēriji tiek atgriezti. Tehniski tas darbojas šādā veidā:
Katras loģiskās izteiksmes rezultāts ir Būla vērtību masīvs, kur TRUE ir vienāds ar 1, bet FALSE - ar 0. Pēc tam visu masīvu elementi, kas atrodas vienādās pozīcijās, tiek reizināti. Tā kā reizināšana ar nulli vienmēr dod nulli, tikai tie elementi, kuriem visi kritēriji ir TRUE, nonāk iegūtajā masīvā, un attiecīgi tiek izdalīti tikai šie elementi.
Tālāk sniegtajos piemēros ir parādīta šī vispārīgā formula darbībā.
Piemērs 1. Vairāku kolonnu filtrēšana programmā Excel
Paplašinot mūsu Excel FILTER pamatformulu, filtrēsim datus pēc divām kolonnām: Grupa (B aile) un Uzvaras (C aile).
Šim nolūkam mēs iestatām šādus kritērijus: F2 ierakstiet mērķa grupas nosaukumu ( kritēriji1 ) un minimālais nepieciešamais uzvaru skaits F3 grupā ( kritēriji2 ).
Ņemot vērā, ka mūsu avota dati ir A2:C13 ( masīvs ), grupas ir B2:B13 grupā ( diapazons1 ) un uzvaras ir C2:C13 ( diapazons2 ), formula ir šāda:
=FILTER(A2:C13, (B2:B13=F2) * (C2:C13>=F3), "Nav rezultātu")
Rezultātā tiek izveidots A grupas spēlētāju saraksts, kuri ir izcīnījuši 2 vai vairāk uzvaras:
Piemērs 2. Datu filtrēšana starp datumiem
Vispirms jāatzīmē, ka nav iespējams izveidot vispārīgu formulu, lai filtrētu pēc datuma programmā Excel. Dažādās situācijās jums būs nepieciešams veidot kritērijus atšķirīgi atkarībā no tā, vai vēlaties filtrēt pēc konkrēta datuma, mēneša vai gada. Šī piemēra mērķis ir parādīt vispārējo pieeju.
Mūsu parauga datiem pievienosim vēl vienu sleju, kurā būs pēdējās uzvaras datumi (sleja D). Tagad mēs izdalīsim uzvaras, kas gūtas konkrētā periodā, piemēram, no 17. maija līdz 31. maijam.
Lūdzu, ņemiet vērā, ka šajā gadījumā abi kritēriji attiecas uz vienu un to pašu diapazonu:
=FILTER(A2:D13, (D2:D13>=G2) * (D2:D13<=G3), "Nav rezultātu")
kur G2 un G3 ir datumi, starp kuriem filtrēt.
Filtrēšana ar vairākiem kritērijiem (OR loģika)
Lai iegūtu datus, pamatojoties uz vairākiem OR nosacījumiem, arī izmantojiet loģiskās izteiksmes, kā parādīts iepriekšējos piemēros, bet tā vietā, lai tos reizinātu, tos saskaitiet. Kad ar izteiksmēm iegūtie Būla masīvi tiek saskaitīti, iegūtajā masīvā būs 0 ierakstiem, kas neatbilst nevienam kritērijam (t. i., visi kritēriji ir FALSE), un šādi ieraksti tiks izfiltrēti. Ieraksti, kuriem pievismaz viens kritērijs ir TRUE, tiks atlasīts.
Šeit ir vispārīgā formula, lai filtrētu kolonnas ar OR loģiku:
FILTER(masīvs, ( diapazons1 = kritēriji1 ) + ( diapazons2 = kritēriji2 ), "Nav rezultātu")Kā piemēru izvilksim to spēlētāju sarakstu, kuriem ir šo vai to. uzvaru skaits.
Pieņemot, ka avota dati ir A2:C13, uzvaras ir C2:C13, bet interesējošie uzvaras skaitļi ir F2 un F3, formula būtu šāda:
=FILTER(A2:C13, (C2:C13=F2) + (C2:C13=F3), "Nav rezultātu")
Rezultātā uzzināsiet, kuri spēlētāji ir uzvarējuši visās spēlēs (4) un kuri - nevienā (0):
Filtrēšana, pamatojoties uz vairākiem AND, kā arī OR kritērijiem
Ja nepieciešams piemērot abus kritēriju veidus, atcerieties šo vienkāršo noteikumu: apvienojiet AND kritērijus ar zvaigznīti (*) un OR kritērijus ar plus zīmi (+).
Piemēram, lai atgrieztu sarakstu ar spēlētājiem, kuriem ir dotais uzvaru skaits (F2) UN kuri pieder grupai, kas minēta E2 VAI E3, izveidojiet šādu loģisko izteicienu virkni:
=FILTER(A2:C13, (C2:C13=F2) * ((B2:B13=E2) + (B2:B13=E3)), "Nav rezultātu")
Un iegūsiet šādu rezultātu:
Kā programmā Excel filtrēt dublikātus
Strādājot ar lielām darblapām vai apvienojot datus no dažādiem avotiem, bieži vien pastāv iespēja, ka tajās var parādīties daži dublēšanās gadījumi.
Ja vēlaties izfiltrēt dublikāti un iegūstiet unikālus vienumus, pēc tam izmantojiet UNIQUE funkciju, kā paskaidrots iepriekš saistītajā pamācībā.
Ja jūsu mērķis ir filtrēt dublikātus t. i., atlasiet ierakstus, kas parādās vairāk nekā vienu reizi, pēc tam izmantojiet funkciju FILTER kopā ar COUNTIFS.
Ideja ir iegūt visu ierakstu gadījumu skaitu un izvilkt tos, kas lielāki par 1. Lai iegūtu skaitļus, katram ierakstam jānorāda tas pats diapazons. criteria_range / kritēriji pāris COUNTIFS, piemēram, šis:
FILTRĒT( masīvs , COUNTIFS( sleja1 , column1, sleja2 , sleja2 )>1, "Nav rezultātu")Piemēram, lai no A2:C20 datiem filtrētu dublējošās rindas, pamatojoties uz visu trīs kolonnu vērtībām, šeit ir norādīta formula, kas jāizmanto:
=FILTER(A2:C20, COUNTIFS(A2:A20, A2:A20, B2:B20, B2:B20, B2:B20, C2:C20, C2:C20)>1, "Nav rezultātu")
Padoms. Lai filtrētu dublikātus, pamatojoties uz vērtībām, kas norādītas galvenās kolonnas , COUNTIFS funkcijā iekļaujiet tikai šīs konkrētās kolonnas.
Kā izfiltrēt tukšos laukumus programmā Excel
Tukšo šūnu filtrēšanas formula patiesībā ir Excel FILTER formulas variācija ar vairākiem AND kritērijiem. Šajā gadījumā mēs pārbaudām, vai visās (vai konkrētās) kolonnās ir kādi dati, un izslēdzam rindas, kurās vismaz viena šūna ir tukša. Lai identificētu tukšas šūnas, izmantojiet operatoru "nav vienāds ar" () kopā ar tukšu virkni (""), piemēram, šādi:
FILTER(masīvs, ( sleja1 "") * ( sleja2 =""), "Nav rezultātu")Izmantojot avota datus A2:C12, lai filtrētu rindas, kurās ir viena vai vairākas tukšas šūnas, E3 tiek ievadīta šāda formula:
Filtrējiet šūnas, kurās ir konkrēts teksts
Lai atlasītu šūnas, kurās ir noteikts teksts, varat izmantot funkciju FILTRĒT kopā ar klasisko formulu Ja šūna satur:
FILTER(masīvs, ISNUMBER(SEARCH(" teksts ", diapazons )), "Nav rezultātu")Lūk, kā tas darbojas:
- SEARCH funkcija meklē norādīto teksta virkni dotajā diapazonā un atgriež vai nu skaitli (pirmā simbola pozīciju), vai #VALUE! kļūdu (teksts nav atrasts).
- Funkcija ISNUMBER pārvērš visus skaitļus uz TRUE un kļūdas uz FALSE un nodod iegūto Būla masīvu funkcijai iekļaut funkcijas FILTER arguments.
Šajā piemērā mēs esam pievienojuši Uzvārdi spēlētāju B2:B13, ierakstiet G2 laukā vajadzīgo vārda daļu un pēc tam datu filtrēšanai izmantojiet šādu formulu:
=FILTER(A2:D13, ISNUMBER(SEARCH(G2, B2:B13)), "Nav rezultātu")
Rezultātā formula iegūst divus uzvārdus, kas satur "han":
Filtrēt un aprēķināt (Summa, Vidējais, Min, Max utt.)
Excel FILTER funkcija ir lieliska ar to, ka tā var ne tikai iegūt vērtības ar nosacījumiem, bet arī apkopot filtrētos datus. Šim nolūkam FILTER apvienojiet ar summēšanas funkcijām, piemēram, SUM, AVERAGE, COUNT, MAX vai MIN.
Piemēram, lai apkopotu datus par konkrētu F1 grupu, izmantojiet šādas formulas:
Kopējais uzvaru skaits:
=SUM(FILTER(C2:C13, B2:B13=F1, 0))
Vidējās uzvaras:
= VIDĒJAIS(FILTRS(C2:C13, B2:B13=F1, 0))
Maksimālais uzvaru skaits:
=MAX(FILTRS(C2:C13, B2:B13=F1, 0))
Minimālais uzvarētāju skaits:
=MIN(FILTRS(C2:C13, B2:B13=F1, 0))
Lūdzu, pievērsiet uzmanību tam, ka visās formulās mēs izmantojam nulles vērtību. if_empty argumentu, tāpēc formulas atgriezīs 0, ja netiks atrastas kritērijam atbilstošas vērtības. Jebkura teksta, piemēram, "Nav rezultātu", norādīšana radītu #VALUE kļūdu, kas, protams, ir pēdējais, ko jūs vēlaties :)
Uz burtiem jutīga FILTRA formula
Standarta Excel FILTER formulā nav jūtīga pret mazajiem un lielajiem burtiem, t. i., tā neizšķir mazos un lielos burtus. Lai atšķirtu teksta burtus, ievietot EXACT funkciju programmā iekļaut Tas liks FILTER veikt loģisko testu, ņemot vērā mazo un lielo burtu un lielo izmēru:
FILTER(masīvs, EXACT( diapazons , kritēriji ), "Nav rezultātu")Pieņemsim, ka jums ir abas grupas A un a un vēlaties atlasīt ierakstus, kuru grupa ir mazie burti "a". Lai to izdarītu, izmantojiet šādu formulu, kur A2:C13 ir avota dati un B2:B13 ir filtrējamās grupas:
=FILTER(A2:C13, EXACT(B2:B13, "a"), "Nav rezultātu")
Kā parasti, mērķa grupu var ievadīt iepriekš definētā šūnā, piemēram, F1, un izmantot šīs šūnas atsauci, nevis kodētu tekstu:
=FILTER(A2:C13, EXACT(B2:B13, F1), "Nav rezultātu")
Kā filtrēt datus un atgriezt tikai konkrētas kolonnas
Lielākoties Excel lietotāji vēlas filtrēt visas kolonnas ar vienu formulu. Taču, ja jūsu avota tabulā ir desmitiem vai pat simtiem kolonnu, jūs noteikti vēlaties ierobežot rezultātu atlasi līdz dažām svarīgākajām kolonnām.
Piemērs 1. Dažu blakus esošo kolonnu filtrēšana
Ja vēlaties, lai FILTRĒ rezultātos parādītos dažas blakus esošās kolonnas, iekļaujiet tikai šīs kolonnas. masīvs jo tieši šis arguments nosaka, kuras kolonnas atgriezt.
Pamata FILTER formulas piemērā, pieņemot, ka vēlaties atgriezt pirmās 2 kolonnas ( Nosaukums un Grupa ). Tātad jūs sniedzat A2:B13, lai masīvs arguments:
=FILTER(A2:B13, B2:B13=F1, "Nav rezultātu")
Rezultātā iegūstam F1 definētās mērķa grupas dalībnieku sarakstu:
Piemērs 2. Filtrējiet nesaderīgas kolonnas
Lai panāktu, ka FILTER funkcija atgriež nesavienojošas kolonnas, izmantojiet šo atjautīgo triku:
- Izveidojiet FILTER formulu ar vēlamo(-ajiem) nosacījumu(-iem), izmantojot visu tabulu, lai masīvs .
- Ievietot iepriekš minēto formulu citā FILTER funkcijā. Lai konfigurētu "iesaiņojuma" funkciju, izmantojiet TRUE un FALSE vērtību masīva konstantu vai 1 un 0 vērtību masīva konstantu, lai iekļaut arguments, kur TRUE (1) apzīmē kolonnas, kas jāsaglabā, un FALSE (0) apzīmē kolonnas, kas jāizslēdz.
Piemēram, lai atgrieztu tikai Nosaukumi (1. sleja) un Uzvaras (3. sleja), mēs izmantojam {1,0,1} vai {TRUE,FALSE,TRUE} par iekļaut ārējās FILTER funkcijas arguments:
=FILTRS(FILTER(A2:C13, B2:B13=F1), {1,0,1})
Vai
=FILTRS(FILTER(A2:C13, B2:B13=F1), {TRUE,FALSE,TRUE})
Kā ierobežot ar FILTER funkciju atgriezto rindu skaitu
Ja FILTER formula atrod diezgan daudz rezultātu, bet jūsu darblapā ir ierobežota vieta un jūs nevarat dzēst zemāk esošos datus, tad varat ierobežot rindu skaitu, ko FILTER funkcija atgriež.
Aplūkosim, kā tas darbojas, izmantojot vienkāršas formulas piemēru, kas F1 izvelk spēlētājus no mērķa grupas:
=FILTRS(A2:C13, B2:B13=F1)
Iepriekšminētā formula izvada visus atrastos ierakstus, mūsu gadījumā - 4 rindas. Bet pieņemsim, ka jums ir vieta tikai divām rindām. Lai izvadītu tikai pirmās 2 atrastās rindas, ir jādara šādi:
- Ievietojiet FILTER formulu masīvs funkcijas INDEX arguments.
- Par rindu_num argumentu INDEX, izmantojiet vertikālu masīva konstanti, piemēram, {1;2}. Tā nosaka, cik rindu jāatgriež (mūsu gadījumā - 2).
- Par column_num argumentu, izmantojiet horizontālu masīva konstanti, piemēram, {1,2,3}. Tā norāda, kuras kolonnas atgriezt (šajā piemērā - pirmās 3 kolonnas).
- Lai novērstu iespējamās kļūdas, ja nav atrasti jūsu kritērijiem atbilstoši dati, varat formulu ietvert funkcijā IFERROR.
Pilna formula ir šāda:
=IFERROR(INDEX(FILTER(A2:C13, B2:B13=F1), {1;2}, {1,2,3}), "Nav rezultāta")
Strādājot ar lielām tabulām, masīva konstantu rakstīšana manuāli var būt diezgan apgrūtinoša. Nekādu problēmu, funkcija SEQUENCE var automātiski ģenerēt kārtas numurus:
=IFERROR(INDEX(FILTER(A2:C13, B2:B13=F1), SEQUENCE(2), SEQUENCE(1, COLUMNS(A2:C13))), "Nav rezultātu")
Pirmā SEQUENCE ģenerē vertikālu masīvu, kas satur tik daudz secīgu numuru, cik norādīts pirmajā (un vienīgajā) argumentā. Otrajā SEQUENCE izmanto funkciju COLUMNS, lai saskaitītu datu kopas kolonnu skaitu, un izveido līdzvērtīgu horizontālu masīvu.
Padoms. Lai atgrieztu datus no īpašas kolonnas , nevis visas kolonnas, horizontālajā masīva konstantē, ko izmantojat column_num argumentā INDEX iekļaujiet tikai šos konkrētos skaitļus. Piemēram, lai iegūtu datus no 1. un 3. slejas, izmantojiet {1,3}.
Excel FILTER funkcija nedarbojas
Situācijā, kad jūsu Excel FILTER formula rada kļūdu, visticamāk, tā būs viena no šādām:
#CALC! kļūda
Notiek, ja neobligātais if_empty arguments ir izlaists, un nav atrasts neviens kritērijam atbilstošs rezultāts. Iemesls ir tāds, ka pašlaik Excel neatbalsta tukšus masīvus. Lai izvairītos no šādām kļūdām, noteikti vienmēr definējiet argumentu if_empty vērtība jūsu formulās.
#VALUE kļūda
Notiek, kad masīvs un iekļaut argumentam ir nesaderīgas dimensijas.
#N/A, #VALUE utt.
Var rasties dažādas kļūdas, ja kāda vērtība iekļaut arguments ir kļūdains vai to nevar pārvērst boolean vērtībā.
#NAME kļūda
Tas rodas, mēģinot izmantot FILTER vecākā Excel versijā. Lūdzu, atcerieties, ka tā ir jauna funkcija, kas pieejama tikai Office 365 un Excel 2021. gadā.
Ja jaunajā programmā Excel nejauši nepareizi uzrakstāt funkcijas nosaukumu, rodas kļūda #NAME.
#SPILL kļūda
Visbiežāk šī kļūda rodas, ja viena vai vairākas šūnas izplūdes diapazonā nav pilnīgi tukšas. Lai to novērstu, vienkārši notīriet vai izdzēsiet tukšas šūnas. Lai izpētītu un atrisinātu citus gadījumus, skatiet sadaļu #SPILL! kļūda programmā Excel: ko tā nozīmē un kā novērst.
#REF! kļūda
Tas notiek, ja FILTER formula tiek izmantota starp dažādām darbgrāmatām un avota darbgrāmata tiek slēgta.
Lūk, kā dinamiski filtrēt datus programmā Excel. Paldies, ka izlasījāt, un ceru, ka nākamnedēļ tiksimies mūsu emuārā!
Lejupielādēt prakses darba burtnīcu
Filtrēšana programmā Excel ar formulām (.xlsx fails)