Excel VBA-kampfunksjon

VBA Match-funksjon ser etter posisjonen eller radnummeret til oppslagverdien i tabellarrayen, dvs. i hoved Excel-tabellen. For eksempel VLOOKUP, HLOOKUP, MATCH, INDEX, etc. Dette er oppslagfunksjonene som er viktigere enn andre. Beklageligvis har vi ikke de samme funksjonene som er tilgjengelige i VBA for å gjøre ting enklere. Imidlertid kan vi bruke disse funksjonene som regnearkfunksjoner under VBA-skriptet for å gjøre livene våre enklere.

I dag skal vi lære MATCH-funksjonen som kan brukes som regnearkfunksjon under VBA.

VBA Match har samme bruk som Match-formelen i Excel. Denne funksjonen i MS Excel VBA finner et samsvar i en matrise med referanse til oppslagverdien og skriver ut plasseringen. Denne funksjonen blir nyttig når du trenger å evaluere dataene basert på visse verdier. For eksempel er VBA MATCH nyttig hvis du har lønnsdataene til ansatte og du må finne ut den numeriske stillingen til en ansatt i dataene dine som har lønn mindre enn / større enn / tilsvarer en viss verdi. Det er veldig nyttig å analysere dataene, og en kodelinje kan også automatisere tingene for deg.

Syntaks for matchfunksjon i Excel VBA

VBA Match har følgende syntaks:

Hvor,

  • Arg1 - Lookup_value - Verdien du trenger for å slå opp i en gitt gruppe.
  • Arg2 - Lookup_array - en rekke rader og kolonner som inneholder mulig Lookup_value.
  • Arg3 - Match_type - Kamptypen som tar verdien -1, 0 eller 1.

Hvis match_type = -1 betyr at MATCH-funksjonen vil finne ut den minste verdien som er større enn eller tilsvarer lookup_value. For at dette skal skje, må oppslag_arrayen sorteres i synkende rekkefølge.

Hvis match_type = 0 betyr at MATCH-funksjonen vil finne ut verdien som er nøyaktig den samme som for lookup_value.

Hvis match_type = +1 betyr det at MATCH-funksjonen vil finne ut den største verdien som er mindre enn eller tilsvarer lookup_value. For at dette skal skje, må lookup_array sorteres i stigende rekkefølge. Standardverdien for matchen er +1.

Hvordan bruke Excel VBA Match-funksjon?

Vi lærer hvordan du bruker en VBA Match Excel-funksjon med få eksempler.

Du kan laste ned denne VBA Match Excel-malen her - VBA Match Excel-mal

VBA Match-funksjon - eksempel # 1

Anta at vi har data som vist nedenfor:

Vi må finne hvem fra denne listen som har lønn € 30.000 sammen med stilling i Excel.

Selv om vi i dette datasettet manuelt kan konfigurere dette, kan du tenke på et bredere bilde, hva om du har millioner av rader og kolonner?

Følg trinnene nedenfor for å bruke MATCH-funksjonen i VBA.

Trinn 1: Definer en delprosedyre ved å gi et navn til makroen.

Kode:

 Sub exmatch1 () Slutt Sub 

Trinn 2: Nå vil vi at utdataene våre skal lagres i celle E2. Begynn derfor å skrive koden som Range (“E2”)

Dette definerer outputområdet for resultatet.

Kode:

 Sub exmatch1 () Range ("E2"). Verdi = End Sub 

Trinn 3: Bruk WorksheetFunction for å kunne bruke VBA-funksjoner.

Kode:

 Sub exmatch1 () Range ("E2"). Verdi = WorksheetFunction End Sub 

Trinn 4: WorksheetFunction har en rekke funksjoner som er tilgjengelige og brukes under VBA. Etter “WorksheetFunction”, sett en prikk (.), Så vil du kunne få tilgang til funksjonene. Velg MATCH-funksjonen fra rullegardinlisten.

Kode:

 Sub exmatch1 () Range ("E2"). Verdi = WorksheetFunction.Match End Sub 

Trinn 5: Gi argumentene til MATCH-funksjonen. Som Lookup_value. Lookup_value vår lagres i celle D2 som vist på skjermbildet nedenfor. Du får tilgang til den under MATCH-funksjonen ved å bruke Range-funksjonen.

Kode:

 Sub exmatch1 () Range ("E2"). Verdi = WorksheetFunction.Match (Range ("D2"). Verdi, End Sub 

Trinn 6: Det andre argumentet er Lookup_array. Dette er tabellområdet du vil finne ut hvor Lookup_value ligger. I vårt tilfelle er det (B1: B11). Gi denne matrisen ved hjelp av Range-funksjonen.

Kode:

 Sub exmatch1 () Range ("E2"). Verdi = WorksheetFunction.Match (Range ("D2"). Verdi, Range ("B1: B11"), End Sub 

Trinn 7: Det siste argumentet for at denne koden skal fungere er Match_type. Vi ønsket å ha en eksakt samsvar for Lookup_value i gitt område> Gi derfor null (0) som et samsvarende argument.

Kode:

 Sub exmatch1 () Range ("E2"). Verdi = WorksheetFunction.Match (Range ("D2"). Verdi, Range ("B1: B11"), 0) End Sub 

Trinn 8: Kjør denne koden ved å trykke på F5 eller Run-knappen og se utdataene.

Du kan se i celle E2, det er en numerisk verdi (6) som viser plasseringen av verdien fra celle D2 gjennom rekkevidde B1: B11.

Eksempel 2 - VBA-kampfunksjon med løkker

Det er enkelt når du bare har en verdi å lete etter i hele serien. Men hva hvis du trenger å sjekke plasseringen for et antall celler? Det vil være hardt for en person som legger til for å be ham om å skrive de separate kodene for hver celle.

I slike tilfeller kan MATCH-funksjonen brukes med loop (spesielt For loop i vårt tilfelle). Se følgende trinn for å få et inntrykk av hvordan vi bruker MATCH-funksjon med loop.

Trinn 1: Definer en underprosess ved å gi et navn til makroen.

Kode:

 Subeksempel2 () Slutt Sub 

Trinn 2: Definer et heltall som kan inneholde verdien for flere celler i løkken.

Kode:

 Undereksempel2 () Dim i som heltal Slutt sub 

Trinn 3: Bruk For loop på heltallet for å bruke de forskjellige oppslagsverdiene hvis plassering kan lagres i kolonne E.

Kode:

 Undereksempel2 () Dim i som heltall for i = 2 til 6 slutt Sub 

Trinn 4: Nå, bruk den samme metoden som vi brukte i eksempel 1, i stedet for Range, vil vi bruke Cells-funksjonen og bruke en todimensjonal matrise (Rader og kolonner) i motsetning til det første eksemplet.

Kode:

 Undereksempel2 () Dim i som heltall for i = 2 til 6 celler (i, 5). Verdi = regnearkFunksjon.Match (celler (i, 4). Verdi, rekkevidde ("B2: B11"), 0) Neste i Slutt Under 

Her lagrer celler (i, 5). Verdi = lagrer verdien av resulterende posisjoner i hver rad fra 2 til 6 (rad i) i kolonne E (kolonne nummer 5). Under Match-funksjon sjekker celler (i, 4). Verdier for hver Lookup_value til stede i rad 2 til 6 i den fjerde kolonnen. Denne oppslagsverdien søkte deretter i Array B2: B11 i excel-ark der data er til stede og relative posisjoner kan lagres i hver rad i kolonne 5 (kolonne E).

Trinn 5: Kjør denne koden ved å trykke på F5 eller Run-knappen samtidig og se resultatet. Den vil nesten trekke ut magien i et stykke kode med en enkelt linje.

I denne artikkelen lærte vi hvordan vi kan bruke MATCH-funksjonen under VBA som et spesielt tilfelle av WorksheetFunction.

Ting å huske

  • Look__value kan være nummer / tekst / logisk verdi eller kan være en cellehenvisning til et tall, tekst eller logisk verdi.
  • Som standard kan Match_type betraktes som 1, hvis utelatt / ikke nevnt.
  • I likhet med Excel MATCH-funksjonen gir VBA MATCH også den relative posisjonen til en oppslag_verdi under Lookup_array og ikke selve verdien.
  • Hvis en kamp ikke blir funnet, vil en relativ excelcelle fylles med # N / A.
  • Hvis MATCH-funksjonen brukes på tekstverdier, kan den ikke skille mellom små og store bokstaver. For eksempel er Lalit og lalit de samme. Så gjør LALIT og lalit.
  • Jokertegn kan brukes hvis du finner ut nøyaktig kamp (dvs. samsvarstypen er null). Jokertegnets asterisk (*) kan brukes til å finne ut en serie tegn. Mens et spørsmålstegn (?) Kan brukes til å finne ut et enkelt tegn.

Anbefalte artikler

Dette er en guide til VBA Match-funksjon. Her diskuterer vi VBA Match og hvordan du bruker Excel VBA Match-funksjon sammen med praktiske eksempler og nedlastbar Excel-mal. Du kan også gå gjennom andre foreslåtte artikler -

  1. Komplett guide til VBA ved feil
  2. Hvordan bruke VBA-nummerformat?
  3. VBA VLOOKUP-funksjon med eksempler
  4. Opprette VBA-funksjon i Excel
  5. Excel Match-funksjon (eksempler)

Kategori: