Excel VBA: Hvordan filtrere med flere kriterier i matrise (7 måter)

  • Dele Denne
Hugh West

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.

Hugh West er en svært erfaren Excel-trener og analytiker med over 10 års erfaring i bransjen. Han har en bachelorgrad i regnskap og finans og en mastergrad i bedriftsøkonomi. Hugh har en lidenskap for undervisning og har utviklet en unik undervisningstilnærming som er enkel å følge og forstå. Hans ekspertkunnskap om Excel har hjulpet tusenvis av studenter og fagfolk over hele verden med å forbedre sine ferdigheter og utmerke seg i karrieren. Gjennom bloggen sin deler Hugh sin kunnskap med verden, og tilbyr gratis Excel-opplæringer og nettbasert opplæring for å hjelpe enkeltpersoner og bedrifter å nå sitt fulle potensial.