Kazalo
Č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.xlsm7 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.