Excel VBA: Kako filtrirati z več merili v polju (7 načinov)

  • Deliti To
Hugh West

Če iščete načine za filter z več merili v Excelu VBA filtriranje velikega nabora podatkov na podlagi več meril je lažje s pomočjo VBA kod, namesto da bi uporabili običajne funkcije programa Excel.

Začnimo z glavnim člankom.

Prenos delovnega zvezka

Filter z več merili.xlsm

7 načinov za filtriranje z več kriteriji v polju z uporabo programa Excel VBA

V naslednjem podatkovnem nizu imamo nekaj zapisov o ocenah, ki ustrezajo imenom učencev in njihovim identifikatorjem. Ta podatkovni niz bomo poskušali filtrirati na podlagi različnih meril kot polje z uporabo nekaterih kod.

Uporabili smo Microsoft Excel 365 različica tukaj, lahko pa uporabite katero koli drugo različico glede na vaše udobje.

Metoda-1: Filtriranje z več merili kot besedili v polju

Tukaj bomo poskusili filtrirati naslednji nabor podatkov na podlagi Ime in priimek učenca stolpec za več meril, ki vsebujejo nize Emily , Daniel in Gabriel v polju.

Korak-01 :

➤ Pojdite na Razvijalec zavihek>> Visual Basic Možnost.

Nato se Urejevalnik Visual Basic se bo odprlo.

➤ Pojdite na Vstavite zavihek>> Modul Možnost.

Po tem je treba Modul bo ustvarjen.

Korak-02 :

➤ Napišite naslednjo kodo

 Sub filter_with_array_as_criteria_1() ActiveSheet.Range("B3:D3").AutoFilter Field:=2, _ Operator:=xlFilterValues, Criteria1:=Array("Emily", "Daniel", "Gabriel") End Sub 

V tem primeru smo deklarirali imena glave v območju B3: D3 v katerem bomo uporabili filter in Polje:=2 je številka stolpca tega območja, na podlagi katerega bomo izvedli postopek filtriranja.

Nazadnje smo merila nastavili kot polje za prijavo več imen učencev, na primer Emily , Daniel in Gabriel .

➤ Tisk F5 .

Nato bo nabor podatkov filtriran po več merilih, da se prikažejo imena učencev in njihova ustrezna imena. Ids in . Marks za študente Emily , Daniel in Gabriel .

Preberite več: Filtriranje več meril v Excelu (4 primerni načini)

Metoda-2: Filtriranje z več številčnimi merili v polju z uporabo programa Excel VBA

V tem primeru bomo filtrirali naslednjo zbirko podatkov za identifikatorje 101135 , 101137 in 101138 z uporabo teh številk kot več meril v polju.

Koraki :

➤ Sledite Korak-01 na spletnem mestu Metoda-1 .

➤ Napišite naslednjo kodo

 Sub filter_with_array_as_criteria_2() ActiveSheet.Range("B3:D3").AutoFilter Field:=1, Operator:=xlFilterValues, _ Criteria1:=Array("101135", "101137", "101138") End Sub 

V tem primeru smo deklarirali imena glave v območju B3: D3 v katerem bomo uporabili filter in Polje:=2 je številka stolpca tega območja, na podlagi katerega bomo izvedli postopek filtriranja.

Nazadnje smo merila nastavili kot polje za prijavo identifikacijskih številk več učencev, kot je npr. 101135 , 101137 in 101138 in smo jih postavili v narekovaje, da bi jih določili kot nize, ker AutoFilter bo deloval le za polje nizov.

➤ Tisk F5 .

Nato boste dobili imena in ocene učencev, ki imajo ID. 101135 , 101137 in 101138 .

Preberite več: VBA za pridobivanje edinstvenih vrednosti iz stolpca v polje v Excelu (3 merila)

Metoda-3: Nastavitev več meril v območju za uporabo kot polje

Tu smo navedli merila v Seznam stolpec, ki vsebuje ids 101134 , 101135 in 101136 na podlagi katerih bomo izvedli postopek filtriranja.

Koraki :

➤ Sledite Korak-01 na spletnem mestu Metoda-1 .

➤ Napišite naslednjo kodo

 Sub filter_with_array_as_criteria_3() Dim ID_range, k As Variant ID_range = Application.Transpose(ActiveSheet.Range("F4:F6")) For k = LBound(ID_range) To UBound(ID_range) ID_range(k) = CStr(ID_range(k)) Next k ActiveSheet.Range("B3:D3").AutoFilter Field:=1, Operator:=xlFilterValues, _ Criteria1:=ID_range End Sub 

Tukaj smo razglasili ID_range , k kot Varianta in . ID_range je polje, v katerem je shranjenih več meril, in k je prirastek od spodnje meje do zgornje meje tega polja. Za določitev spodnje in zgornje meje smo uporabili Funkcija LBOUND in . Funkcija UBOUND oziroma.

Spletna stran zanka FOR se uporablja za pretvorbo vrednosti, ki niso nizi, v polju v nize s pomočjo Funkcija CStr . Nazadnje smo to polje uporabili kot Merila1 .

➤ Tisk F5 .

Nato boste dobili imena in ocene učencev, ki imajo ID 101134 , 101135 in 101136 .

Preberite več: Filtriranje različnih stolpcev z več merili v Excelu VBA

Podobna branja

  • Kako filtrirati edinstvene vrednosti v Excelu (8 preprostih načinov)
  • Izvedite filter po meri v Excelu (5 načinov)
  • Izračunajte povprečje polja z VBA (makro, UDF in uporabniški obrazec)
  • Bližnjica za Excelov filter (3 hitre uporabe s primeri)

Metoda-4: Uporaba funkcij SPLIT in JOIN za ustvarjanje polja z več merili

V tem primeru bomo uporabili naslednji seznam v Seznam stolpec kot polje, za pravilno filtriranje podatkovne množice pa bomo uporabili tudi Funkcija SPLIT , Funkcija JOIN in Funkcija TRANSPOSE v VBA koda.

Koraki :

➤ Sledite Korak-01 na spletnem mestu Metoda-1 .

➤ Napišite naslednjo kodo

 Sub filter_with_array_as_criteria_4() ActiveSheet.Range("B3:D3").AutoFilter Field:=1, Operator:=xlFilterValues, _ Criteria1:=Split(Join(Application.Transpose(Range("F4:F6")), ","), ","), ",") End Sub 

Tukaj, TRANSPOZE bo pretvoril 2D polje v 1D polje sicer AutoFilter ne bo deloval, PRIDRUŽITE SE bo vsako od vrednosti združil v polje nizov, na koncu pa, SPLIT bo razčlenil vsak niz in jih ločeno vnesel kot merila za filtriranje podatkovnega niza.

➤ Tisk F5 .

Na koncu boste dobili imena in ocene učencev, ki imajo ID 101134 , 101135 in 101136 .

Preberite več: Kako razdeliti niz v polje v programu VBA (3 načini)

Metoda-5: Filtriranje z več kriteriji v zanki za polje z VBA

V tem razdelku bomo filtrirali naslednji nabor podatkov glede na Id študenta stolpec za več meril, kot so navedena v Seznam stolpec.

Koraki :

➤ Sledite Korak-01 na spletnem mestu Metoda-1 .

➤ Napišite naslednjo kodo

 Sub filter_with_array_as_criteria_5() Dim k As Integer Dim ID_range(100) As String For k = 4 To 6 ID_range(k) = ActiveSheet.Range("F" & k) Next k ActiveSheet.Range("B3:D3").AutoFilter Field:=1, Operator:=xlFilterValues, _ Criteria1:=ID_range End Sub 

Tukaj smo razglasili k kot Integer , ID_razpon(100) kot Niz kjer je ID_range je polje, v katerem je shranjenih do 100 Za določitev vrednosti tega polja smo uporabili zanka FOR za k s spletne strani 4 na . 6 kot številke vrstic v Seznam stolpec in F je ime stolpca.

Na koncu smo to polje uporabili kot Merila1 za AutoFilter .

➤ Tisk F5 .

Sčasoma boste dobili imena in ocene učencev, ki imajo ID. 101134 , 101135 in 101136 .

Preberite več: Filtriranje več meril v Excelu z VBA (obe vrsti AND in OR)

Metoda-6: Uporaba poimenovanega območja za več meril

Tukaj smo navedli nekaj imen učencev v Seznam stolpec in poimenovali to območje kot Študent S tem poimenovanim območjem bomo določili polje, ki bo vsebovalo več meril za AutoFilter funkcija.

Koraki :

➤ Sledite Korak-01 na spletnem mestu Metoda-1 .

➤ Napišite naslednjo kodo

 Sub filter_with_array_as_criteria_6() Dim Student_range, k As Variant Student_range = Application.Transpose(ActiveSheet.Range("Student")) ActiveSheet.Range("B3:D3").AutoFilter Field:=2, _ Operator:=xlFilterValues, Criteria1:=Student_range End Sub 

Tukaj smo razglasili Študent_razpon , k kot Varianta in uporabil Funkcija TRANSPOSE za pretvorbo 2D polje poimenovanega območja Študent v 1D in ga nato shranil v Študent_razpon . Nato se uporabi kot Merila1 za AutoFilter metoda.

➤ Tisk F5 .

Nato boste nabor podatkov filtrirali po več merilih, tako da bodo prikazana imena učencev in njihova ustrezna imena. Ids in . Marks za študente Jefferson , Emily in Sara .

Sorodna vsebina: VBA za transpozicijo polja v Excelu (3 metode)

Metoda-7: Filtriranje tabele z več kriteriji v polju

Tu imamo naslednje podatke. Tabela katerega ime je Tabela1 in uporabo programa Excel VBA poskušali bomo filtrirati to tabelo na podlagi imen. Emily , Daniel in Gabriel kot več meril v polju.

Koraki :

➤ Sledite Korak-01 na spletnem mestu Metoda-1 .

➤ Napišite naslednjo kodo

 Sub filter_with_array_as_criteria_7() ActiveSheet.ListObjects("Table1").Range.AutoFilter Field:=2, _ Operator:=xlFilterValues, Criteria1:=Array("Emily", "Daniel", "Gabriel") End Sub 

Tukaj, Seznamobjektov("Tabela1") se uporablja za opredelitev tabele Tabela1 , Polje:=2 za nastavitev drugega stolpca tega razpona kot osnove za postopek filtriranja in nazadnje smo določili polje, ki vsebuje več imen za Merila1 .

➤ Tisk F5 .

Sčasoma boste zbirko podatkov filtrirali po več merilih, tako da bodo prikazana imena učencev in njihova ustrezna imena. Ids in . Marks za študente Emily , Daniel in Gabriel .

Preberite več: Excel VBA: filtriranje tabele na podlagi vrednosti celice (6 enostavnih metod)

Oddelek za prakso

Za samostojno izvajanje prakse smo pripravili Praksa kot spodaj v listu z imenom Praksa . Prosimo, da to storite sami.

Zaključek

V tem članku smo poskušali zajeti načine za filtriranje z več merili kot polje z uporabo programa Excel. VBA Upam, da vam bo koristilo. Če imate kakršne koli predloge ali vprašanja, jih lahko delite v razdelku s komentarji.

Hugh West je zelo izkušen trener Excela in analitik z več kot 10-letnimi izkušnjami v industriji. Po izobrazbi je diplomirani računovodstvo in finance ter magisterij poslovne administracije. Hugh ima strast do poučevanja in je razvil edinstven pristop k poučevanju, ki ga je enostavno slediti in razumeti. Njegovo strokovno znanje o Excelu je pomagalo na tisoče študentom in strokovnjakom po vsem svetu, da so izboljšali svoje sposobnosti in se izkazali v karieri. Prek svojega bloga Hugh deli svoje znanje s svetom, ponuja brezplačne vadnice za Excel in spletno usposabljanje, ki posameznikom in podjetjem pomaga doseči njihov polni potencial.