Funksioni Excel FILTER - filtrim dinamik me formula

  • Shperndaje Kete
Michael Brown

Në këtë mësim të shpejtë, do të mësoni se si të filtroni në Excel në mënyrë dinamike me formula. Shembuj për të filtruar dublikatat, qelizat që përmbajnë tekst të caktuar, me kritere të shumta dhe më shumë.

Si filtroheni zakonisht në Excel? Në pjesën më të madhe, duke përdorur Auto Filter, dhe në skenarë më komplekse me Filter të avancuar. Duke qenë të shpejta dhe të fuqishme, këto metoda kanë një pengesë të rëndësishme - ato nuk përditësohen automatikisht kur të dhënat tuaja ndryshojnë, që do të thotë se do t'ju duhet të pastroni dhe filtroni përsëri. Futja e funksionit FILTER në Excel 365 bëhet një alternativë e shumëpritur ndaj veçorive konvencionale. Ndryshe nga ato, formulat e Excel-it rillogariten automatikisht me çdo ndryshim të fletës së punës, kështu që do t'ju duhet të konfiguroni filtrin tuaj vetëm një herë!

    Funksioni FILTER Excel

    Funksioni FILTER në Excel përdoret për të filtruar një sërë të dhënash bazuar në kriteret që specifikoni.

    Funksioni i përket kategorisë së funksioneve të vargjeve dinamike. Rezultati është një grup vlerash që derdhet automatikisht në një varg qelizash, duke filluar nga qeliza ku futni një formulë.

    Sintaksa e funksionit FILTER është si më poshtë:

    FILTER(array, përfshin , [nëse_bosh])

    Ku:

    • Array (kërkohet) - diapazoni ose grupi i vlerave që dëshironi të filtroni.
    • Përfshi (kërkohet) - kriteret e ofruara si një grup Boolean (vlerat TRUE dhe FALSE).

      E sajedhe qindra kolona, ​​sigurisht që mund të dëshironi t'i kufizoni rezultatet në disa nga më të rëndësishmet.

      Shembulli 1. Filtro disa kolona ngjitur

      Në situatën kur dëshironi që disa kolona fqinje të shfaqen në një rezultat FILTER, përfshini vetëm ato kolona në array sepse është ky argument që përcakton se cilat kolona të kthehen.

      Në shembullin bazë të formulës FILTER, duke supozuar se dëshironi të ktheni 2 kolonat e para ( Emri dhe Grupi ). Pra, ju jepni A2:B13 për argumentin array :

      =FILTER(A2:B13, B2:B13=F1, "No results")

      Si rezultat, ne marrim një listë të pjesëmarrësve të grupit të synuar të përcaktuar në F1:

      Shembulli 2. Filtro kolonat jo ngjitur

      Për të bërë që funksioni FILTER të kthejë kolona jo të afërta, përdorni këtë truk të zgjuar:

      1. Bëni një formulë FILTER me kusht(at) e dëshiruara duke përdorur të gjithë tabelën për array .
      2. Foleseni formulën e mësipërme brenda një funksioni tjetër FILTER. Për të konfiguruar funksionin "wrapper", përdorni një konstante grupi me vlera TRUE dhe FALSE ose 1 dhe 0 për argumentin përfshi , ku TRUE (1) shënon kolonat që do të mbahen dhe FALSE (0) shënon kolonat që do të përjashtohen.

      Për shembull, për të kthyer vetëm Emrat (kolona 1) dhe Fiton (kolona e 3-të), ne përdorim {1, 0,1} ose {TRUE,FALSE,TRUE} për argumentin përfshi të funksionit të jashtëm FILTER:

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

      Ose

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

      Si të kufizohetnumri i rreshtave të kthyer nga funksioni FILTER

      Nëse formula juaj FILTER gjen mjaft rezultate, por fleta juaj e punës ka hapësirë ​​të kufizuar dhe nuk mund t'i fshini të dhënat më poshtë, atëherë mund të kufizoni numrin e rreshtave që kthen funksioni FILTER .

      Le të shohim se si funksionon në një shembull të një formule të thjeshtë që tërheq lojtarët nga grupi i synuar në F1:

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

      Formula e mësipërme nxjerr të gjitha rekordet që gjen, 4 rreshta në rastin tonë. Por supozoni se keni hapësirë ​​​​për dy. Për të nxjerrë vetëm 2 rreshtat e parë të gjetur, kjo është ajo që duhet të bëni:

      • Filni formulën FILTER në argumentin array të funksionit INDEX.
      • Për argumentin row_num të INDEX, përdorni një konstante të vargut vertikal si {1;2}. Ai përcakton se sa rreshta duhet të kthehen (2 në rastin tonë).
      • Për argumentin column_num , përdorni një konstante të grupit horizontal si {1,2,3}. Ai specifikon se cilat kolona duhet të kthehen (3 kolonat e para në këtë shembull).
      • Për t'u kujdesur për gabimet e mundshme kur nuk gjenden të dhëna që përputhen me kriteret tuaja, mund ta mbështillni formulën tuaj në funksionin IFERROR.

    Formula e plotë merr këtë formë:

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

    Kur punoni me tabela të mëdha, shkrimi manual i konstantave të grupeve mund të jetë mjaft i rëndë. Nuk ka problem, funksioni SEQUENCE mund të gjenerojë automatikisht numrat sekuencialë për ju:

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

    SEQUENCE e parë gjeneron një grup vertikalqë përmban aq numra sekuencialë të specifikuar në argumentin e parë (dhe të vetëm). SEQUENCA e dytë përdor funksionin COLUMNS për të numëruar numrin e kolonave në grupin e të dhënave dhe prodhon një grup ekuivalent horizontal.

    Këshillë. Për të kthyer të dhëna nga kolona specifike , jo të gjitha kolonat, në konstantën e grupit horizontal që përdorni për argumentin numri_kolona të INDEX, përfshijnë vetëm ata numra specifikë. Për shembull, për të nxjerrë të dhëna nga kolona 1 dhe 3, përdorni {1,3}.

    Funksioni Excel FILTER nuk funksionon

    Në situatën kur formula juaj Excel FILTER rezulton në një gabim, ka shumë të ngjarë që do të jetë një nga sa vijon:

    #CALC! gabim

    Ndodh nëse hiqet argumenti opsional if_empty dhe nuk gjenden rezultate që plotësojnë kriteret. Arsyeja është se aktualisht Excel nuk mbështet vargje boshe. Për të parandaluar gabime të tilla, sigurohuni që gjithmonë të përcaktoni vlerën if_empty në formulat tuaja.

    #VALUE error

    Ndodh kur array dhe përfshi ka dimensione të papajtueshme.

    #N/A, #VALUE, etj.

    Gabime të ndryshme mund të ndodhin nëse disa vlera në argumentin përfshijnë është një gabim ose nuk mund të konvertohet në një vlerë Boolean.

    Gabim #NAME

    Ndodh kur përpiqeni të përdorni FILTER në një version më të vjetër të Excel. Ju lutemi mbani mend se është një funksion i ri, i cili disponohet vetëm në Office 365 dhe Excel 2021.

    NëExcel i ri, ndodh një gabim #NAME nëse gabimisht shkruani gabim emrin e funksionit.

    #SPILL error

    Më shpesh, ky gabim ndodh nëse një ose më shumë qeliza në diapazonin e derdhjes nuk janë plotësisht bosh . Për ta rregulluar atë, thjesht pastroni ose fshini qelizat jo bosh. Për të hetuar dhe zgjidhur raste të tjera, ju lutemi shihni #SHPILL! gabim në Excel: çfarë do të thotë dhe si të rregullohet.

    #REF! gabim

    Ndodh kur një formulë FILTER përdoret midis librave të ndryshëm të punës dhe libri i punës burim mbyllet.

    Kjo është mënyra se si të skedaroni të dhënat në Excel në mënyrë dinamike. Ju falënderoj që lexoni dhe shpresoj t'ju shohim në blogun tonë javën tjetër!

    Shkarko librin e punës praktike

    Filtër në Excel me formula (skedari .xlsx)

    lartësia (kur të dhënat janë në kolona) ose gjerësia (kur të dhënat janë në rreshta) duhet të jetë e barabartë me atë të argumentit array .
  • If_empty (opsionale) - vlera që duhet kthyer kur asnjë hyrje nuk i plotëson kriteret.
  • Funksioni FILTER është i disponueshëm vetëm në Excel për Microsoft 365 dhe Excel 2021. Në Excel 2019, Excel 2016 dhe versionet e mëparshme, ai nuk mbështetet.

    Formula bazë Excel FILTER

    Për fillestarët, le të diskutojmë disa raste shumë të thjeshta vetëm për të fituar duke kuptuar më shumë se si funksionon një formulë Excel për të filtruar të dhënat.

    Nga grupi i mëposhtëm i të dhënave, duke supozuar se dëshironi të nxirrni regjistrimet me një vlerë specifike në kolonën Grupi , le të themi grupi C. Për ta bërë këtë, ne japim shprehjen B2:B13="C" në argumentin include , i cili do të prodhojë një grup të kërkuar Boolean, me TRUE që korrespondon me vlerat "C".

    =FILTER(A2:C13, B2:B13="C", "No results")

    Në praktikë, është më e përshtatshme të futni kriteret në një qelizë të veçantë, p.sh. F1, dhe përdorni një referencë qelize në vend që të kodoni vlerën drejtpërdrejt në formulën:

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

    Ndryshe nga veçoria Filter e Excel, funksioni nuk bën asnjë ndryshim në të dhënat origjinale. Ai nxjerr të dhënat e filtruara në të ashtuquajturën diapazon të derdhjes (E4:G7 në pamjen e mëposhtme), duke filluar në qelizën ku futet formula:

    Nëse nuk ka regjistrime përputhen me kriteret e specifikuara, formula kthen vlerën që keni vendosur nëArgumenti if_empty , "Nuk ka rezultate" në këtë shembull:

    Nëse preferoni të ktheni asgjë në këtë rast, atëherë jepni një varg bosh ("") për argumentin e fundit:

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

    Në rast se të dhënat tuaja janë të organizuara horizontalisht nga e majta në të djathtë siç tregohet në pamjen e mëposhtme të ekranit, funksioni FILTER do të funksionojë gjithashtu mirë. Vetëm sigurohuni që të përcaktoni vargjet e duhura për argumentet array dhe përfshijnë , në mënyrë që grupi burimor dhe grupi Boolean të kenë të njëjtën gjerësi:

    =FILTER(B2:M4, B3:M3= B7, "No results")

    Funksioni Excel FILTER - shënimet e përdorimit

    Për të filtruar në mënyrë efektive në Excel me formula, këtu janë disa pika të rëndësishme për t'u marrë parasysh:

    • Funksioni FILTER i derdh automatikisht rezultatet vertikalisht ose horizontalisht në fletën e punës, në varësi të mënyrës se si janë organizuar të dhënat tuaja origjinale. Pra, ju lutemi sigurohuni që të keni gjithmonë mjaft qeliza boshe poshtë dhe djathtas, përndryshe do të merrni një gabim #SPILL.
    • Rezultatet e funksionit Excel FILTER janë dinamike, që do të thotë se ato përditësohen automatikisht kur vlerat janë në ndryshimi i grupit të të dhënave origjinale. Megjithatë, diapazoni i dhënë për argumentin array nuk përditësohet kur hyrjet e reja shtohen në të dhënat burimore. Nëse dëshironi që array të ndryshojë madhësinë automatikisht, atëherë konvertojeni atë në një tabelë Excel dhe ndërtoni formula me referenca të strukturuara, ose krijoni një varg dinamik me emër.

    Si të filtroni në Excel -shembuj formulash

    Tani që e dini se si funksionon një formulë bazë e filtrit Excel, është koha për të marrë disa njohuri se si mund të zgjerohet për zgjidhjen e detyrave më komplekse.

    Filtro me kritere të shumta (DHE logjika)

    Për të filtruar të dhënat me kritere të shumta, ju jepni dy ose më shumë shprehje logjike për argumentin përfshi :

    FILTER(array, ( range1= kriteri1) * ( range2= kriteri2), "Nuk ka rezultat")

    Operacioni i shumëzimit përpunon vargjet me logjikën AND , duke siguruar që të kthehen vetëm të dhënat që plotësojnë të gjitha kriteret . Teknikisht, funksionon në këtë mënyrë:

    Rezultati i secilës shprehje logjike është një grup vlerash Boolean, ku TRUE barazohet me 1 dhe FALSE me 0. Më pas, elementet e të gjitha grupeve në të njëjtat pozicione shumëzohen . Meqenëse shumëzimi me zero jep gjithmonë zero, vetëm artikujt për të cilët të gjitha kriteret janë TË VËRTETA hyjnë në grupin që rezulton dhe si pasojë vetëm ato elemente nxirren.

    Shembujt e mëposhtëm tregojnë këtë formulë të përgjithshme në veprim.

    Shembulli 1. Filtro kolona të shumta në Excel

    Duke zgjeruar pak më tej formulën tonë bazë të Excel FILTER, le t'i filtrojmë të dhënat nga dy kolona: Grupi (kolona B) dhe Fiton (kolona C).

    Për këtë, ne vendosëm kriteret e mëposhtme: shkruani emrin e grupit të synuar në F2 ( kriteret1 ) dhe numrin minimal të kërkuar tëfiton në F3 ( kriteret2 ).

    Duke pasur parasysh që të dhënat tona burimore janë në A2:C13 ( array ), grupet janë në B2:B13 ( rangu1 ) dhe fitimet janë në C2:C13 ( range2 ), formula merr këtë formë:

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

    Si rezultat, ju merrni një listë lojtarësh në grupin A që kanë siguruar 2 ose më shumë fitore:

    Shembulli 2. Filtro të dhënat ndërmjet datave

    Së pari, duhet theksuar se nuk është e mundur për të krijuar një formulë të përgjithshme për të filtruar sipas datës në Excel. Në situata të ndryshme, do t'ju duhet të ndërtoni kritere ndryshe, në varësi të faktit nëse dëshironi të filtroni sipas një date specifike, sipas muajit ose sipas vitit. Qëllimi i këtij shembulli është të demonstrojë qasjen e përgjithshme.

    Të dhënave tona të mostrës, ne shtojmë një kolonë tjetër që përmban datat e fitores së fundit (kolona D). Dhe tani, ne do të nxjerrim fitoret që ndodhën në një periudhë të caktuar, le të themi midis 17 majit dhe 31 majit.

    Ju lutemi vini re se në këtë rast, të dy kriteret zbatohen për të njëjtin diapazon:

    =FILTER(A2:D13, (D2:D13>=G2) * (D2:D13<=G3), "No results")

    Ku G2 dhe G3 janë datat për tu filtruar.

    Filtër me kritere të shumta (OSE logjikë)

    Për të nxjerrë të dhëna bazuar në kushtin e shumëfishtë OSE, ju përdorni gjithashtu shprehje logjike si në shembujt e mëparshëm, por në vend që t'i shumëzoni, i mblidhni ato. Kur grupet Boolean të kthyera nga shprehjet përmblidhen, grupi rezultues do të ketë 0 për hyrjet që nuk plotësojnë asnjë kriter (d.m.th. të gjithakriteret janë FALSE), dhe këto hyrje do të filtrohen. Regjistrimet për të cilat të paktën një kriter është TRUE do të nxirren.

    Këtu është formula e përgjithshme për të filtruar kolonat me logjikën OSE:

    FILTER(array, ( range1= criteria1) + ( range2= criteria2), "Nuk ka rezultate")

    Si shembull, le të nxjerrim një listë lojtarësh që kanë këtë ose ai numri i fitoreve.

    Duke supozuar se të dhënat burimore janë në A2:C13, fitimet janë në C2:C13 dhe numrat e fitimeve të interesit janë në F2 dhe F3, formula do të shkonte si më poshtë:

    =FILTER(A2:C13, (C2:C13=F2) + (C2:C13=F3), "No results")

    Si rezultat, ju e dini se cilët lojtarë i kanë fituar të gjitha ndeshjet (4) dhe cilët nuk kanë fituar asnjë (0):

    Filtri i bazuar në kritere të shumta AND si dhe OR

    Në situatën kur duhet të aplikoni të dy llojet e kritereve, mbani mend këtë rregull të thjeshtë: bashkoni kriteret AND me yll (*) dhe kriteret OR me plus shenjë (+).

    Për shembull, për të kthyer një listë lojtarësh që kanë një numër të caktuar fitoresh (F2) DHE i përkasin grupit të përmendur në E2 OSE E3, ndërtoni zinxhirin e mëposhtëm të logjikës shprehjet:

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

    Dhe do të merrni rezultatin e mëposhtëm:

    Si të filtroni dublikatat në Excel

    Kur punoni me fletë pune të mëdha ose kombinoni të dhëna nga burime të ndryshme, shpesh ekziston mundësia që disa dublikatë të hyjnë fshehurazi.

    Nëse po kërkoni të filtroni dublikatat dhe ekstraktartikuj unikë, më pas përdorni funksionin UNIQUE siç shpjegohet në tutorialin e lidhur më sipër.

    Nëse qëllimi juaj është të filtrosh dublikatat , d.m.th. të nxjerrësh hyrjet që ndodhin më shumë se një herë, atëherë përdor funksionin FILTER së bashku me COUNTIFS.

    Ideja është që të merren numërimet e dukurive për të gjitha rekordet dhe të nxirren ato më të mëdha se 1. Për të marrë numërimet, ju jepni të njëjtin diapazon për çdo varg_kriterie / kriteret çifti i COUNTIFS si ky:

    FILTER( array, COUNTIFS( kolona1, kolona1, kolona2, kolona2)>1, "Nuk ka rezultate")

    Për shembull, për të filtruar rreshta të dyfishtë nga të dhënat në A2:C20 bazuar në vlerat në të 3 kolonat, ja formula që duhet përdorur:

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

    Këshillë. Për të filtruar dublikatat bazuar në vlerat në kolonat kryesore , përfshini vetëm ato kolona specifike në funksionin COUNTIFS.

    Si të filtrohen boshllëqet në Excel

    Një formulë për filtrimin e qelizave bosh është, në fakt, një variacion i formulës Excel FILTER me kritere të shumta DHE. Në këtë rast, ne kontrollojmë nëse të gjitha kolonat (ose të veçanta) kanë ndonjë të dhënë në to dhe përjashtojmë rreshtat ku të paktën një qelizë është bosh. Për të identifikuar qelizat jo bosh, ju përdorni operatorin "jo e barabartë me" () së bashku me një varg bosh ("") si ky:

    FILTER(array, ( kolona1 "") * ( colon2 =""), "Nuk ka rezultat")

    Me të dhënat burimore në A2:C12, për të filtruar rreshtatqë përmban një ose më shumë qeliza bosh, formula e mëposhtme futet në E3:

    Filtro qelizat që përmbajnë tekst specifik

    Për të nxjerrë qelizat që përmbajnë tekst të caktuar, ju mund të përdorë funksionin FILTER së bashku me qelizën klasike Nëse përmban formulën:

    FILTER(array, ISNUMBER(SEARCH(" tekst ", varg )), "Nuk ka rezultate")

    Ja se si funksionon:

    • Funksioni SEARCH kërkon një varg teksti të caktuar në një gamë të caktuar dhe kthen ose një numër (pozicionin e karakterit të parë) ose #VALUE! gabim (teksti nuk u gjet).
    • Funksioni ISNUMBER i konverton të gjithë numrat në TRUE dhe gabimet në FALSE dhe ia kalon grupin Boolean që rezulton në argumentin përfshi të funksionit FILTER.

    Për këtë shembull, ne kemi shtuar Mbiemrat të lojtarëve në B2:B13, kemi shtypur pjesën e emrit që duam të gjejmë në G2 dhe më pas kemi përdorur formulën e mëposhtme për të filtro të dhënat:

    =FILTER(A2:D13, ISNUMBER(SEARCH(G2, B2:B13)), "No results")

    Si rezultat, formula merr dy mbiemrat që përmbajnë "han":

    Filtro dhe llogarit (Suma, Average, Min, Max, etj.)

    Një gjë interesante në lidhje me funksionin Excel FILTER është se ai jo vetëm që mund të nxjerrë vlera me kushte, por edhe të përmbledhë të dhënat e filtruara. Për këtë, kombinoni FILTER me funksionet e grumbullimit si SUM, AVERAGE, COUNT, MAX ose MIN.

    Për shembull, për të grumbulluar të dhëna për një grup specifik në F1, përdorni sa vijonformulat:

    Fitoret totale:

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

    Fitimet mesatare:

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

    Fitoret maksimale:

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

    Fitoret minimale:

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

    Ju lutemi kushtojini vëmendje se, në të gjitha formulat, ne përdorim zero për argumentin if_empty , kështu që formulat do të ktheni 0 nëse nuk gjenden vlera që plotësojnë kriteret. Dhënia e çdo teksti si "Nuk ka rezultate" do të rezultonte në një gabim #VALUE, që është padyshim gjëja e fundit që dëshironi :)

    Formula FILTER e ndjeshme ndaj shkronjave të vogla

    Një formulë standarde e Excel FILTER është e pandjeshme ndaj shkronjave të mëdha, që do të thotë se nuk bën dallim midis shkronjave të vogla dhe të mëdha. Për të dalluar rastet e tekstit, futni funksionin EXACT në argumentin include . Kjo do të detyrojë FILTER-in të bëjë testin logjik në një mënyrë të ndjeshme ndaj shkronjave të vogla:

    FILTER(array, EXACT( varg , kriteret ), "Nuk ka rezultate")

    Me supozim , ju keni të dy grupet A dhe a dhe dëshironi të nxirrni regjistrime ku grupi është "a" e vogël. Për ta bërë këtë, përdorni formulën e mëposhtme, ku A2:C13 janë të dhënat burimore dhe B2:B13 janë grupet për të filtruar:

    =FILTER(A2:C13, EXACT(B2:B13, "a"), "No results")

    Si zakonisht, ju mund të futni grupin e synuar në një qelizë e paracaktuar, le të themi F1, dhe përdorni atë referencë qelize në vend të tekstit të koduar:

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

    Si të FILTRONI të dhënat dhe të ktheni vetëm kolona specifike

    Në pjesën më të madhe, filtrimi i të gjitha kolonave me një formulë të vetme është ajo që duan përdoruesit e Excel. Por nëse tabela juaj burimore përmban dhjetëra ose

    Michael Brown është një entuziast i përkushtuar i teknologjisë me një pasion për thjeshtimin e proceseve komplekse duke përdorur mjete softuerike. Me më shumë se një dekadë përvojë në industrinë e teknologjisë, ai ka përmirësuar aftësitë e tij në Microsoft Excel dhe Outlook, si dhe Google Sheets dhe Docs. Blogu i Michael është i përkushtuar ndaj ndarjes së njohurive dhe ekspertizës së tij me të tjerët, duke ofruar këshilla dhe mësime të thjeshta për t'u ndjekur për të përmirësuar produktivitetin dhe efikasitetin. Pavarësisht nëse jeni një profesionist me përvojë apo fillestar, blogu i Michael ofron njohuri të vlefshme dhe këshilla praktike për të përfituar sa më shumë nga këto mjete softuerike thelbësore.