VBA Application.Match - trinnvis guide med eksempler

Innholdsfortegnelse

Excel VBA Application.Match

En av de beste tingene med VBA er at den har sin egen funksjon, og også at den vil gi oss tilgang til alle regnearkfunksjonene under klassen "Arbeidsarkfunksjon". Du må allerede ha brukt MATCH-funksjonen som en regnearkfunksjon, men den er ikke en VBA-funksjon, så vi trenger tilgang under regnearkfunksjonsklassen. I denne artikkelen vil vi vise deg hvordan du bruker MATCH-funksjonen i VBA ved å bruke applikasjonsmetoden.

Rask oppsummering av MATCH-funksjonen

MATCH er en oppslagsfunksjon som ser etter posisjonen til oppslagsverdien i den nevnte oppslagsmatrisen. Se for eksempel på bildet nedenfor av dataene.

I de ovennevnte dataene har vi måneder fra A2 til A6, og hvis vi vil vite hvilket sted "Mar" -måneden forekommer, kan vi bruke MATCH-funksjonen.

Nedenfor er syntaksen for MATCH-funksjonen.

MATCH (Lookup Value, Lookup Array, (Match Type))
  • Oppslagsverdi: For hvilken verdi vi ser etter posisjonen i oppslagsmatrisen.
  • Lookup Array: I hvilken matrise vi ser etter posisjonen til oppslagsverdien.
  • (Match Type): For dette kan vi gi tre argumenter.
  1. 1 = Mindre enn
  2. 0 = nøyaktig samsvar
  3. -1 = større enn

Mesteparten av tiden bruker vi bare “0 nøyaktig samsvar”.

Hvordan bruke Application.Match-funksjonen i VBA?

Eksempel 1

Se på dataene nedenfor i excel.

Fra dataene ovenfor må vi finne posisjonen til "Mar" -måneden i området fra celler fra A2 til A6. Siden vi trenger resultater i D2-celler med en gang, start koden som Range (“D2”). Verdi =.

For å ankomme verdi i D2-cellen, må vi bruke MATCH-regnearkfunksjonen, så for å få tilgang til dette først, må vi få tilgang til APPLICATION-objektet og deretter WORKSHEET FUNCTION-objektet.

Skriv inn prikk for å se en liste over regnearkfunksjoner.

Velg "Match" fra listen.

Et av problemene i VBA når du bruker regnearkfunksjoner er at vi ikke ser eksakt syntaks slik vi ser med regnearkfunksjonen. Dette er en av grunnene til at vi bare har forklart syntaksen i begynnelsen.

Så det første argumentet er oppslagsverdi, dvs. for hvilken verdi vi ønsker å finne stedet. I dette tilfellet ønsker vi å finne stedet for "Mar" som er i C2-cellen, så oppgi cellereferansen.

Det neste argumentet er oppslagsmatrise, dvs. i hvilket område vi ser etter posisjonen til en oppslagsverdi , for disse forsyningscellene fra A2 til A6.

Det siste argumentet vil være en nøyaktig samsvar, så gi 0.

Kode:

Sub Match_Example1 () Range ("D2"). Value = Application.WorksheetFunction.Match (Range ("C2"). Value, Range ("A2: A6"), 0) End Sub

Ok, vi er ferdige med formelen.

Kjør koden gjennom F5-tasten og se hva vi får.

Så vi har fått resultatet som 3 fordi verdien “Mar” er i stedet for 3. posisjon i området A2 til A6.

Denne MATCH-funksjonen kan gi posisjonen til oppslagsverdien. MATCH-funksjonen ble imidlertid i stor grad brukt sammen med VLOOKUP-funksjonen for å levere kolonneindeksnummeret basert på kolonneoverskriften.

Eksempel 2

Nå skal vi se hvordan du bruker MATCH som en støttefunksjon for VLOOKUP-funksjonen.

Se på dataene nedenfor.

I tabellen ovenfor ser vi på salg av “Feb” -månedene i 2018, så vi må bruke VLOOKUP-funksjonen. VLOOKUP er også en regnearkfunksjon, så få tilgang til dette som hvordan vi har fått tilgang til MATCH-funksjonen.

Oppslagsverdi vil være G2-celle, så oppgi celleadresse.

Kode:

Sub Match_Example2() Range("H2").Value = Application.WorksheetFunction.VLookup(Range("G2").Value, End Sub

Table Array will be from A2 to D6.

Code:

Sub Match_Example2() Range("H2").Value = Application.WorksheetFunction.VLookup(Range("G2").Value,Range("A2:D6"), End Sub

Now we need to provide from which column of the table array we are looking for the result, so this will be from the 3rd column. Instead of supplying the column number as 3, let’s use the MATCH function.

Code:

Sub Match_Example2() Range("H2").Value = Application.WorksheetFunction.VLookup(Range("G2").Value, Range("A2:D6"), Application.WorksheetFunction.Match(Range("H1").Value, Range("A1:D1"), 0), 0) End Sub

Så MATCH-funksjonen gir kolonnenummeret fra området A1 til D1 for måneden "Feb". La oss kjøre koden og se hvordan den får kolonnetall automatisk.

Der har du et resultat fra kolonne nummer 2 takket være automatisk tilførsel av kolonnenummer fra MATCH-funksjonen.

Ting å huske

  • MATCH-funksjonen ser etter posisjonen til oppslagsverdien i den valgte matrisetabellen.
  • MATCH-funksjonen brukes hovedsakelig med VLOOKUP-funksjonen for å automatisk levere kolonneindeksnummeret ved hjelp av kolonneoverskrift.
  • MATCH-funksjonen er tilgjengelig som en regnearkfunksjon i VBA.

Interessante artikler...