Talaan ng nilalaman
Sa mabilisang araling ito, matututunan mo kung paano mag-filter sa Excel nang pabago-bago gamit ang mga formula. Mga halimbawa upang i-filter ang mga duplicate, mga cell na naglalaman ng ilang partikular na text, na may maraming pamantayan, at higit pa.
Paano ka karaniwang nagfi-filter sa Excel? Para sa karamihan, sa pamamagitan ng paggamit ng Auto Filter, at sa mas kumplikadong mga sitwasyon na may Advanced na Filter. Dahil mabilis at makapangyarihan, ang mga paraang ito ay may isang makabuluhang disbentaha - hindi sila awtomatikong nag-a-update kapag nagbago ang iyong data, ibig sabihin ay kailangan mong linisin at i-filter muli. Ang pagpapakilala ng function na FILTER sa Excel 365 ay naging isang pinakahihintay na alternatibo sa mga kumbensyonal na tampok. Hindi tulad ng mga ito, awtomatikong muling kinakalkula ang mga formula ng Excel sa bawat pagbabago sa worksheet, kaya kakailanganin mong i-set up ang iyong filter nang isang beses lang!
Excel FILTER function
Ang FILTER function sa Ginagamit ang Excel upang i-filter ang isang hanay ng data batay sa pamantayan na iyong tinukoy.
Ang function ay nabibilang sa kategorya ng mga Dynamic na Array na function. Ang resulta ay isang hanay ng mga halaga na awtomatikong dumaloy sa isang hanay ng mga cell, simula sa cell kung saan ka naglalagay ng formula.
Ang syntax ng FILTER function ay ang sumusunod:
FILTER(array, isama , [if_empty])Saan:
- Array (kinakailangan) - ang hanay o hanay ng mga value na gusto mong i-filter.
- Isama ang (kinakailangan) - ang pamantayang ibinigay bilang Boolean array (TRUE at FALSE value).
Nitokahit na daan-daang column, tiyak na gusto mong limitahan ang mga resulta sa ilang pinakamahalagang resulta.
Halimbawa 1. I-filter ang ilang katabing column
Sa sitwasyon kung kailan mo gustong lumabas ang ilang kalapit na column sa isang resulta ng FILTER, isama lang ang mga column na iyon sa array dahil ang argumentong ito ang tumutukoy kung aling mga column ang ibabalik.
Sa halimbawa ng pangunahing formula ng FILTER, kung gusto mong ibalik ang unang 2 column. ( Pangalan at Pangkat ). Kaya, nagbibigay ka ng A2:B13 para sa argumentong array :
=FILTER(A2:B13, B2:B13=F1, "No results")
Bilang resulta, nakakakuha kami ng listahan ng mga kalahok ng target na grupo na tinukoy sa F1:
Halimbawa 2. I-filter ang mga hindi katabi na column
Upang maging sanhi ng pagbabalik ng FILTER function na hindi magkadikit na column, gamitin ang matalinong trick na ito:
- Gumawa ng FILTER formula na may (mga) gustong kundisyon gamit ang buong table para sa array .
- Ilagay ang formula sa itaas sa loob ng isa pang FILTER function. Upang i-configure ang function na "wrapper", gumamit ng array constant ng TRUE at FALSE value o 1's at 0's para sa include argument, kung saan TRUE (1) ang minamarkahan ang column na pananatilihin at FALSE (0) ang mga column na ibubukod.
Halimbawa, para ibalik lamang ang Mga Pangalan (1st column) at Mga Panalo (3rd column), ginagamit namin ang {1, 0,1} o {TRUE,FALSE,TRUE} para sa include argument ng panlabas na FILTER function:
=FILTER(FILTER(A2:C13, B2:B13=F1), {1,0,1})
O
=FILTER(FILTER(A2:C13, B2:B13=F1), {TRUE,FALSE,TRUE})
Paano limitahan angbilang ng mga row na ibinalik ng FILTER function
Kung ang iyong FILTER formula ay makakahanap ng napakaraming resulta, ngunit ang iyong worksheet ay may limitadong espasyo at hindi mo matatanggal ang data sa ibaba, maaari mong limitahan ang bilang ng mga row na ibinabalik ng FILTER function .
Tingnan natin kung paano ito gumagana sa isang halimbawa ng isang simpleng formula na kumukuha ng mga manlalaro mula sa target na grupo sa F1:
=FILTER(A2:C13, B2:B13=F1)
Ang formula sa itaas ay naglalabas ng lahat ng record na nahanap nito, 4 na hanay sa aming kaso. Ngunit ipagpalagay na mayroon kang espasyo para sa dalawa. Para i-output lang ang unang 2 nahanap na row, ito ang kailangan mong gawin:
- Isaksak ang FILTER formula sa array argument ng INDEX function.
- Para sa row_num argument ng INDEX, gumamit ng vertical array constant tulad ng {1;2}. Tinutukoy nito kung gaano karaming mga hilera ang ibabalik (2 sa aming kaso).
- Para sa column_num argument, gumamit ng horizontal array constant tulad ng {1,2,3}. Tinutukoy nito kung aling mga column ang ibabalik (ang unang 3 column sa halimbawang ito).
- Upang alagaan ang mga posibleng error kapag walang nakitang data na tumutugma sa iyong pamantayan, maaari mong i-wrap ang iyong formula sa IFERROR function.
Ginagamit ng kumpletong formula ang form na ito:
=IFERROR(INDEX(FILTER(A2:C13, B2:B13=F1), {1;2}, {1,2,3}), "No result")
Kapag nagtatrabaho sa malalaking talahanayan, ang manu-manong pagsulat ng mga array constant ay maaaring medyo mahirap. Walang problema, ang SEQUENCE function ay maaaring awtomatikong bumuo ng mga sequential na numero para sa iyo:
=IFERROR(INDEX(FILTER(A2:C13, B2:B13=F1), SEQUENCE(2), SEQUENCE(1, COLUMNS(A2:C13))), "No result")
Ang unang SEQUENCE ay bumubuo ng vertical arraynaglalaman ng maraming magkakasunod na numero gaya ng tinukoy sa una (at tanging) argumento. Ang pangalawang SEQUENCE ay gumagamit ng COLUMNS function upang bilangin ang bilang ng mga column sa dataset at gumagawa ng katumbas na horizontal array.
Tip. Upang ibalik ang data mula sa mga partikular na column , hindi lahat ng column, sa horizontal array constant na ginagamit mo para sa column_num argument ng INDEX, isama lang ang mga partikular na numerong iyon. Halimbawa, upang kunin ang data mula sa ika-1 at ika-3 column, gamitin ang {1,3}.
Hindi gumagana ang Excel FILTER function
Sa sitwasyong nagresulta sa error ang iyong formula sa Excel FILTER, malamang na isa iyon sa mga sumusunod:
#CALC! error
Nangyayari kung ang opsyonal na argumento na if_empty ay tinanggal, at walang nakitang mga resultang nakakatugon sa pamantayan. Ang dahilan ay ang kasalukuyang Excel ay hindi sumusuporta sa mga walang laman na array. Upang maiwasan ang mga ganitong error, tiyaking palaging tukuyin ang if_empty value sa iyong mga formula.
#VALUE error
Nangyayari kapag ang array at include argument ay may mga hindi tugmang dimensyon.
#N/A, #VALUE, atbp.
Maaaring magkaroon ng iba't ibang error kung ang ilang value sa kasama ang argument ay isang error o hindi mako-convert sa isang Boolean value.
#NAME error
Nangyayari kapag sinusubukang gumamit ng FILTER sa isang mas lumang bersyon ng Excel. Pakitandaan na isa itong bagong function, na available lang sa Office 365 at Excel 2021.
Sabagong Excel, ang isang #NAME error ay nangyayari kung hindi mo sinasadyang mali ang spelling ng pangalan ng function.
#SPILL error
Kadalasan, ang error na ito ay nangyayari kung ang isa o higit pang mga cell sa spill range ay hindi ganap na blangko . Para ayusin ito, i-clear o i-delete lang ang mga hindi laman na cell. Upang imbestigahan at lutasin ang iba pang mga kaso, pakitingnan ang #SPILL! error sa Excel: ano ang ibig sabihin nito at kung paano ayusin.
#REF! error
Nangyayari kapag ginamit ang isang FILTER formula sa pagitan ng iba't ibang workbook, at sarado ang source workbook.
Ganyan ang dynamic na pag-file ng data sa Excel. Salamat sa pagbabasa at umaasa akong makita ka sa aming blog sa susunod na linggo!
I-download ang workbook ng pagsasanay
I-filter sa Excel gamit ang mga formula (.xlsx file)
taas (kapag ang data ay nasa column) o lapad (kapag ang data ay nasa mga row) ay dapat na katumbas ng argumento ng array .Ang FILTER function ay available lang sa Excel para sa Microsoft 365 at Excel 2021. Sa Excel 2019, Excel 2016 at mga naunang bersyon, hindi ito suportado.
Basic Excel FILTER formula
Para sa panimula, talakayin natin ang ilang napakasimpleng kaso para lang makakuha higit na pag-unawa kung paano gumagana ang isang formula ng Excel upang mag-filter ng data.
Mula sa hanay ng data sa ibaba, ipagpalagay na gusto mong i-extract ang mga talaan na may partikular na halaga sa column na Group , sabihin ang pangkat C. Upang magawa ito, ibinibigay namin ang expression na B2:B13="C" sa argument na include , na gagawa ng kinakailangang Boolean array, na may TRUE na tumutugma sa mga value ng "C."
=FILTER(A2:C13, B2:B13="C", "No results")
Sa pagsasagawa, mas maginhawang ipasok ang pamantayan sa isang hiwalay na cell, hal. F1, at gumamit ng cell reference sa halip na i-hardcode ang value nang direkta sa formula:
=FILTER(A2:C13, B2:B13=F1, "No results")
Hindi tulad ng feature ng Filter ng Excel, ang function ay hindi gumagawa ng anumang mga pagbabago sa orihinal na data. Kinukuha nito ang mga na-filter na tala sa tinatawag na spill range (E4:G7 sa screenshot sa ibaba), simula sa cell kung saan inilalagay ang formula:
Kung walang mga tala tumugma sa tinukoy na pamantayan, ibinabalik ng formula ang halagang inilagay mo sa if_empty argument, "Walang mga resulta" sa halimbawang ito:
Kung mas gusto mong walang ibalik sa kasong ito, kung gayon magbigay ng walang laman na string ("") para sa huling argumento:
=FILTER(A2:C13, B2:B13=F1, "")
Kung sakaling ang iyong data ay nakaayos pahalang mula kaliwa hanggang kanan tulad ng ipinapakita sa screenshot sa ibaba, gagana rin nang maayos ang FILTER function. Siguraduhin lamang na tutukuyin mo ang mga naaangkop na hanay para sa array at isama ang na mga argumento, upang ang source array at Boolean array ay may parehong lapad:
=FILTER(B2:M4, B3:M3= B7, "No results")
Excel FILTER function - mga tala sa paggamit
Upang epektibong mag-filter sa Excel gamit ang mga formula, narito ang ilang mahahalagang punto na dapat bigyang pansin:
- Awtomatikong ibinubuhos ng FILTER function ang mga resulta nang patayo o pahalang sa worksheet, depende sa kung paano nakaayos ang iyong orihinal na data. Kaya, pakitiyak na palagi kang may sapat na mga cell na walang laman sa ibaba at sa kanan, kung hindi, magkakaroon ka ng #SPILL error.
- Ang mga resulta ng Excel FILTER function ay dynamic, ibig sabihin ay awtomatikong nag-a-update ang mga ito kapag ang mga value ay nasa pagbabago ng orihinal na set ng data. Gayunpaman, hindi ina-update ang saklaw na ibinigay para sa argument na array kapag nagdagdag ng mga bagong entry sa source data. Kung gusto mong awtomatikong mag-resize ang array , pagkatapos ay i-convert ito sa Excel table at bumuo ng mga formula na may structured reference, o gumawa ng dynamic na pinangalanang range.
Paano mag-filter sa Excel -mga halimbawa ng formula
Ngayong alam mo na kung paano gumagana ang isang pangunahing Excel filter formula, oras na para makakuha ng ilang insight sa kung paano ito mapapalawak para sa paglutas ng mas kumplikadong mga gawain.
Mag-filter na may maraming pamantayan (AT logic)
Upang i-filter ang data na may maraming pamantayan, nagbibigay ka ng dalawa o higit pang lohikal na expression para sa include argument:
FILTER(array, ( range1= criteria1) * ( range2= criteria2), "Walang resulta")Ang multiplication operation ay nagpoproseso ng mga arrays gamit ang AT logic , tinitiyak na ang mga tala lamang na nakakatugon sa lahat ng pamantayan ang ibabalik. Sa teknikal, ito ay gumagana sa ganitong paraan:
Ang resulta ng bawat lohikal na expression ay isang hanay ng mga Boolean na halaga, kung saan ang TRUE ay katumbas ng 1 at FALSE sa 0. Pagkatapos, ang mga elemento ng lahat ng mga array sa parehong mga posisyon ay i-multiply . Dahil ang pag-multiply sa zero ay palaging nagbibigay ng zero, tanging ang mga item kung saan ang lahat ng pamantayan ay TOTOO ang pumapasok sa nagreresultang array, at dahil dito, ang mga item na iyon lang ang kinukuha.
Ang mga halimbawa sa ibaba ay nagpapakita ng generic na formula na ito sa pagkilos.
Halimbawa 1. I-filter ang maramihang column sa Excel
Pagpapalawak ng aming pangunahing Excel FILTER formula nang kaunti pa, i-filter natin ang data sa pamamagitan ng dalawang column: Group (column B) at Nanalo (column C).
Para dito, ise-set up namin ang sumusunod na pamantayan: i-type ang pangalan ng target na grupo sa F2 ( criteria1 ) at ang minimum na kinakailangang bilang ngnanalo sa F3 ( criteria2 ).
Dahil ang aming source data ay nasa A2:C13 ( array ), ang mga grupo ay nasa B2:B13 ( range1 ) at ang mga panalo ay nasa C2:C13 ( range2 ), ang formula ay ganito ang form:
=FILTER(A2:C13, (B2:B13=F2) * (C2:C13>=F3), "No results")
Bilang resulta, makakakuha ka ng listahan ng mga manlalaro sa pangkat A na nakakuha ng 2 o higit pang panalo:
Halimbawa 2. I-filter ang data sa pagitan ng mga petsa
Una, dapat tandaan na hindi ito posible para gumawa ng generic na formula para i-filter ayon sa petsa sa Excel. Sa iba't ibang sitwasyon, kakailanganin mong bumuo ng pamantayan sa ibang paraan, depende sa kung gusto mong mag-filter ayon sa isang partikular na petsa, ayon sa buwan, o ayon sa taon. Ang layunin ng halimbawang ito ay ipakita ang pangkalahatang diskarte.
Sa aming sample na data, nagdagdag kami ng isa pang column na naglalaman ng mga petsa ng huling panalo (column D). At ngayon, kukunin namin ang mga panalo na naganap sa isang partikular na panahon, sabihin sa pagitan ng Mayo 17 at Mayo 31.
Pakipansin na sa kasong ito, ang parehong pamantayan ay nalalapat sa parehong hanay:
=FILTER(A2:D13, (D2:D13>=G2) * (D2:D13<=G3), "No results")
Kung saan ang G2 at G3 ang mga petsang i-filter sa pagitan.
I-filter na may maraming pamantayan (O logic)
Upang mag-extract ng data batay sa maramihang O kundisyon, gumagamit ka rin ng mga lohikal na expression tulad ng ipinakita sa mga nakaraang halimbawa, ngunit sa halip na i-multiply, idaragdag mo ang mga ito. Kapag ang mga Boolean array na ibinalik ng mga expression ay summed, ang resultang array ay magkakaroon ng 0 para sa mga entry na hindi nakakatugon sa anumang pamantayan (ibig sabihin, lahat ngang mga pamantayan ay MALI), at ang mga naturang entry ay sasalain. Ang mga entry kung saan ang hindi bababa sa isang criterion ay TRUE ay i-extract.
Narito ang generic na formula upang i-filter ang mga column na may OR logic:
FILTER(array, ( range1= criteria1) + ( range2= criteria2), "Walang resulta")Bilang halimbawa, kunin natin ang isang listahan ng mga manlalaro na mayroong ito o na ang bilang ng mga panalo.
Ipagpalagay na ang source data ay nasa A2:C13, ang mga panalo ay nasa C2:C13, at ang mga numero ng panalo ng interes ay nasa F2 at F3, ang formula ay magiging ganito:
=FILTER(A2:C13, (C2:C13=F2) + (C2:C13=F3), "No results")
Bilang resulta, alam mo kung sinong mga manlalaro ang nanalo sa lahat ng laro (4) at alin ang hindi nanalo (0):
Mag-filter batay sa maramihang AT pati na rin sa OR na pamantayan
Sa sitwasyon kung kailan kailangan mong ilapat ang parehong uri ng pamantayan, tandaan ang simpleng panuntunang ito: isama ang pamantayan ng AND na may asterisk (*) at OR na pamantayan na may plus sign (+).
Halimbawa, para magbalik ng listahan ng mga manlalaro na may ibinigay na bilang ng mga panalo (F2) AT kabilang sa pangkat na binanggit sa alinman sa E2 O E3, buuin ang sumusunod na chain ng logical mga expression:
=FILTER(A2:C13, (C2:C13=F2) * ((B2:B13=E2) + (B2:B13=E3)), "No results")
At makukuha mo ang sumusunod na resulta:
Paano mag-filter ng mga duplicate sa Excel
Kapag nagtatrabaho sa malalaking worksheet o pagsasama-sama ng data mula sa iba't ibang pinagmulan, madalas may posibilidad na may ilang duplicate na makalusot.
Kung naghahanap ka ng filter out mga duplicate at katasmga natatanging item, pagkatapos ay gamitin ang NATATANGING function gaya ng ipinaliwanag sa naka-link na tutorial sa itaas.
Kung ang iyong layunin ay i-filter ang mga duplicate , ibig sabihin, i-extract ang mga entry na nangyayari nang higit sa isang beses, pagkatapos ay gamitin ang FILTER function kasama ang COUNTIFS.
Ang ideya ay kunin ang mga bilang ng mga pangyayari para sa lahat ng mga tala at kunin ang mga higit sa 1. Upang makuha ang mga bilang, ibibigay mo ang parehong hanay para sa bawat criteria_range / pamantayan pares ng COUNTIFS tulad nito:
FILTER( array, COUNTIFS( column1, column1, column2, column2)>1, "No results")Halimbawa, para i-filter ang mga duplicate na row mula sa data sa A2:C20 batay sa mga value sa lahat ng 3 column, narito ang formula na gagamitin:
=FILTER(A2:C20, COUNTIFS(A2:A20, A2:A20, B2:B20, B2:B20, C2:C20, C2:C20)>1, "No results")
Tip. Upang i-filter ang mga duplicate batay sa mga value sa key column , isama lang ang mga partikular na column sa COUNTIFS function.
Paano mag-filter ng mga blangko sa Excel
Ang isang formula para sa pag-filter ng mga blangkong cell ay, sa katunayan, isang variation ng Excel FILTER formula na may maraming AND na pamantayan. Sa kasong ito, sinusuri namin kung ang lahat (o partikular) na mga column ay mayroong anumang data sa mga ito at hindi kasama ang mga row kung saan kahit isang cell lang ang walang laman. Upang matukoy ang mga hindi blangkong cell, ginagamit mo ang "not equal to" operator () kasama ng isang walang laman na string ("") tulad nito:
FILTER(array, ( column1 "") * ( column2 =""), "No results")Gamit ang source data sa A2:C12, para i-filter ang mga rowna naglalaman ng isa o higit pang mga blangkong cell, ang sumusunod na formula ay ipinasok sa E3:
I-filter ang mga cell na naglalaman ng partikular na text
Upang i-extract ang mga cell na naglalaman ng ilang partikular na text, ikaw maaaring gamitin ang FILTER function kasama ang classic na If cell ay naglalaman ng formula:
FILTER(array, ISNUMBER(SEARCH(" text ", range )), "No results")Narito kung paano ito gumagana:
- Ang SEARCH function ay naghahanap ng isang tinukoy na text string sa isang partikular na hanay at nagbabalik ng alinman sa isang numero (ang posisyon ng unang character) o #VALUE! error (text not found).
- Iko-convert ng ISNUMBER function ang lahat ng numero sa TRUE at error sa FALSE at ipinapasa ang resultang Boolean array sa include argument ng FILTER function.
Para sa halimbawang ito, idinagdag namin ang Apelyido ng mga manlalaro sa B2:B13, na-type ang bahagi ng pangalan na gusto naming hanapin sa G2, at pagkatapos ay gamitin ang sumusunod na formula upang i-filter ang data:
=FILTER(A2:D13, ISNUMBER(SEARCH(G2, B2:B13)), "No results")
Bilang resulta, kinukuha ng formula ang dalawang apelyido na naglalaman ng "han":
I-filter at kalkulahin (Sum, Average, Min, Max, atbp.)
Ang isang cool na bagay tungkol sa Excel FILTER function ay hindi lamang nito ma-extract ang mga value na may mga kundisyon, ngunit ibubuod din ang na-filter na data. Para dito, pagsamahin ang FILTER sa mga function ng aggregation gaya ng SUM, AVERAGE, COUNT, MAX o MIN.
Halimbawa, para pagsama-samahin ang data para sa isang partikular na grupo sa F1, gamitin ang sumusunodmga formula:
Kabuuang panalo:
=SUM(FILTER(C2:C13, B2:B13=F1, 0))
Average na panalo:
=AVERAGE(FILTER(C2:C13, B2:B13=F1, 0))
Mga maximum na panalo:
=MAX(FILTER(C2:C13, B2:B13=F1, 0))
Minimum na panalo:
=MIN(FILTER(C2:C13, B2:B13=F1, 0))
Pakipansin na, sa lahat ng mga formula, ginagamit namin ang zero para sa if_empty argument, kaya ang mga formula ay ibalik ang 0 kung walang nakitang mga value na nakakatugon sa pamantayan. Ang pagbibigay ng anumang text gaya ng "Walang mga resulta" ay magreresulta sa isang #VALUE error, na malinaw naman ang huling bagay na gusto mo :)
Case-sensitive FILTER formula
Ang karaniwang formula ng Excel FILTER ay case-insensitive, ibig sabihin, hindi ito gumagawa ng pagkakaiba sa pagitan ng maliliit at malalaking character. Para makilala ang text case, ilagay ang EXACT function sa include argument. Pipilitin nito ang FILTER na gumawa ng lohikal na pagsubok sa isang case-sensitive na paraan:
FILTER(array, EXACT( range , criteria ), "No results")Ipagpalagay na , mayroon kang parehong mga pangkat A at a at nais mong kunin ang mga talaan kung saan ang grupo ay ang lowercase na "a". Upang magawa ito, gamitin ang sumusunod na formula, kung saan ang A2:C13 ay ang source data at ang B2:B13 ay mga pangkat na i-filter:
=FILTER(A2:C13, EXACT(B2:B13, "a"), "No results")
Gaya ng dati, maaari mong ipasok ang target na grupo sa isang paunang natukoy na cell, sabihin ang F1, at gamitin ang cell reference na iyon sa halip na hardcoded text:
=FILTER(A2:C13, EXACT(B2:B13, F1), "No results")
Paano i-FILTER ang data at ibalik lamang ang mga partikular na column
Sa karamihan, ang pag-filter ng lahat ng column gamit ang isang formula ang gusto ng mga user ng Excel. Ngunit kung ang iyong source table ay naglalaman ng sampu o