Innholdsfortegnelse
Hvis du leter etter måter å filtrere med flere kriterier i Excel VBA , så er du på rett sted. Filtrering av et stort datasett basert på flere kriterier kan gjøres enklere ved hjelp av VBA koder i stedet for å bruke den konvensjonelle funksjonen i Excel.
Så, la oss starte hovedartikkelen vår.
Last ned arbeidsbok
Filter med flere kriterier.xlsm
7 måter å filtrere med flere kriterier i matrise ved å bruke Excel VBA
I det følgende datasettet har vi noen registreringer av merker som tilsvarer navnet på elevene og deres id. Vi vil prøve å filtrere dette datasettet basert på forskjellige kriterier som en matrise ved å bruke noen koder.
Vi har brukt Microsoft Excel 365 versjon her, du kan bruke alle andre versjoner i henhold til din bekvemmelighet.
Metode-1: Filtrer med flere kriterier som tekster i array
Her vil vi prøve å filtrere følgende datasett basert på Elevnavn kolonne for flere kriterier som inneholder strengene Emily , Daniel og Gabriel i en matrise.
Trinn-01 :
➤ Gå til Utvikler Fane >> Visual Basic Alternativ.
Deretter åpnes Visual Basic Editor .
➤ Gå til Sett inn fanen >> Modul alternativet.
Etter det, en modul vil væreopprettet.
Trinn-02 :
➤ Skriv følgende kode
1544
Her erklærte vi overskriftsnavn i området B3:D3 som vi skal bruke filteret i, og Felt:=2 er kolonnenummeret til dette området som vi skal utføre denne filtreringsprosessen på.
Til slutt har vi satt kriteriene som en matrise for å deklarere flere elevers navn som Emily , Daniel , og Gabriel .
➤ Trykk F5 .
Deretter kan du vil ha datasettet filtrert ned for flere kriterier for å vise navnet på studentene og deres tilsvarende Ids og Marks for elevene Emily , Daniel og Gabriel .
Les mer: Filtrer flere kriterier i Excel (4 egnede måter)
Metode-2: Filtrer med flere tallkriterier i matrise ved å bruke Excel VBA
Her vil vi filtrere ned følgende datasett for ID-ene 101135 , 10 1137 og 101138 ved å bruke disse tallene som flere kriterier i en matrise.
Trinn :
➤ Følg Trinn-01 av Metode-1 .
➤ Skriv følgende kode
2623
Her erklærte vi overskriftsnavnene i området B3:D3 som vi vil bruke filteret i og Felt:=2 er kolonnenummeret til dette området basert på som vi vil gjøre denne filtreringenprosess.
Til slutt har vi satt kriteriene som en matrise for å deklarere flere elevers IDer som 101135 , 101137 og 101138 og vi har satt dem innenfor inverterte kommaer for å spesifisere dem som strenger fordi AutoFilter vil fungere for bare en rekke strenger.
➤ Trykk F5 .
Deretter får du navn og merker til elevene som har id 101135 , 101137 og 101138 .
Les mer: VBA for å få unike verdier fra kolonne til matrise i Excel (3 kriterier)
Metode-3: Sette flere kriterier i et område for bruk som Array
Her har vi listet opp kriteriene i Liste -kolonnen som inneholder ID-ene 101134 , 101135 og 101136 basert på hvilke vi vil gjøre filtreringsprosessen vår.
Trinn :
➤ Følg Trinn-01 av Metode-1 .
➤ Skriv følgende kode
2046
Her , vi har dekl ared ID_range , k som Variant og ID_range er matrisen som vil lagre flere kriterier, og k er inkrementet som strekker seg fra den nedre grensen til den øvre grensen for denne matrisen. For å ha nedre grense og øvre grense brukte vi henholdsvis LBOUND-funksjonen og UBOUND-funksjonen .
FOR-løkken brukes til å konvertere andre verdier enn strengeri matrisen til strenger ved hjelp av CStr-funksjonen . Til slutt har vi brukt denne matrisen som Criteria1 .
➤ Trykk F5 .
Etterpå kan du vil få navn og merker til elevene som har id 101134 , 101135 og 101136 .
Les mer: Filtrer forskjellige kolonner etter flere kriterier i Excel VBA
Lignende avlesninger
- Hvordan filtrere unike verdier i Excel (8 enkle måter)
- Utfør tilpasset filter i Excel (5 Måter)
- Beregn gjennomsnittet av en matrise med VBA (Macro, UDF og UserForm)
- Snarvei for Excel-filter (3 raske bruksområder) med eksempler)
Metode-4: Bruke SPLIT- og JOIN-funksjoner for å lage en matrise med flere kriterier
Her vil vi bruke følgende liste i listen kolonne som en matrise og for å filtrere datasettet riktig vil vi også bruke SPLIT-funksjonen , JOIN-funksjonen og TRANSPOSER-funksjonen i en VBA -kode.
Trinn :
➤ Fol lav Trinn-01 av Metode-1 .
➤ Skriv følgende kode
1529
Her vil TRANSPOSE konvertere 2D matrisen inn i en 1D array ellers vil ikke AutoFilter fungere, JOIN vil slå sammen hver av verdiene til en rekke strenger, og til slutt vil SPLIT bryte ned hver streng for å gi inputdem separat som kriterier for filtrering av datasettet.
➤ Trykk F5 .
Til slutt vil du få navn og merker til elevene som har ID 101134 , 101135 og 101136 .
Les mer: Hvordan dele en streng inn i en matrise i VBA (3 måter)
Metode-5 : Filtrer med flere kriterier i en sløyfe for matrise med VBA
I denne delen vil vi filtrere ned følgende datasett avhengig av Student Id kolonnen for flere kriterier som er oppført i Liste -kolonnen.
Trinn :
➤ Følg Trinn- 01 av Method-1 .
➤ Skriv følgende kode
4240
Her har vi erklært k som Heltall , ID_range(100) som String der ID_range er en matrise som vil lagre opptil 100 verdier. For å bestemme verdiene for denne matrisen her har vi brukt FOR-løkken for k fra 4 til 6 som radnumrene til List kolonne og F er kolonnenavnet.
Til slutt har vi brukt denne matrisen som Criteria1 for AutoFilter .
➤ Trykk F5 .
Til slutt vil du få opp navn og merker til elevene som har id 101134 , 101135 og 101136 .
Les mer: Filtrer flere kriterier i Excel med VBA (Både OG og ELLERTyper)
Metode-6: Bruk av navngitt område for flere kriterier
Her har vi listet opp noen navn på elevene i Liste -kolonnen og gitt dette navnet område som Student . Ved å bruke dette navngitte området vil vi definere en matrise som vil inneholde flere kriterier for AutoFilter funksjonen.
Trinn :
➤ Følg Trinn-01 av Metode-1 .
➤ Skriv følgende kode
1293
Her har vi erklært Student_range , k som en Variant , og brukte TRANSPOSE-funksjonen for å konvertere 2D matrisen til det navngitte området Student i en 1D array og lagret den deretter i Student_range . Deretter brukes den som Kriterier1 for Autofilter metoden.
➤ Trykk F5 .
Deretter vil du ha datasettet filtrert ned for flere kriterier for å vise navnet på studentene og deres tilsvarende Ids og Marks for elevene Jefferson , Emily og Sara .
Relatert innhold: VBA for å transponere matrise i Excel (3 metoder)
Metode-7: Filtertabell med flere kriterier i en matrise
Her har vi følgende tabell hvis navn er Tabell1 og bruker Excel VBA vi vil prøve å filtrere ned denne tabellen basert på navnene Emily , Daniel og Gabriel som flere kriterier i en matrise.
Trinn :
➤ Følg Trinn-01 av Method-1 .
➤ Skriv følgende kode
3808
Her, ListObjects(“Table1”) brukes for å definere tabellen Tabell1 , Felt:=2 for å sette opp den andre kolonnen i dette området som en base for filtreringsprosessen, og til slutt har vi definert en matrise som inneholder flere navn for Kriterier1 .
➤ Trykk F5 .
Til slutt vil du ha datasettet filtrert ned for flere kriterier for å vise navnet på elevene og deres tilsvarende Ids og Karakterer for elevene Emily , Daniel og Gabriel .
Les mer: Excel VBA: Filtertabell basert på celleverdi (6 enkle metoder)
Øvingsseksjon
For å øve ved å selv har vi gitt en Øving -seksjon som nedenfor i et ark kalt Øv . Vennligst gjør det selv.
Konklusjon
I denne artikkelen prøvde vi å dekke måtene å filtrere med flere kriterier som en matrise ved å bruke Excel VBA enkelt. Håper du finner det nyttig. Hvis du har forslag eller spørsmål, del dem gjerne i kommentarfeltet.