VBA Index Match - Slik bruker du indeksmatchfunksjon i VBA (eksempler)

Innholdsfortegnelse

Indeks Match i VBA

INDEX & MATCH-funksjon i VBA-kombinasjon er alternativet til VLOOKUP-funksjonen i excel. I VBA har vi ikke den luksusen å bruke INDEX & MATCH-funksjonen direkte fordi disse to funksjonene ikke er en del av de innebygde VBA-funksjonene. Vi kan imidlertid fortsatt bruke dem som en del av regnearkets funksjonsklasse.

Hvordan bruke Index Match i VBA? (Steg for steg)

Se for eksempel på dataene nedenfor.

I dataene ovenfor er oppslagsverdien avdelingsnavnet, og basert på dette avdelingsnavnet må vi trekke ut lønnsbeløpet.

Men problemet her er at resultatkolonnen er der i den første, og oppslagsverdikolonnen er deretter resultatkolonnen. I dette tilfellet kan ikke VLOOKUP hente lønnsbeløpet fordi VLOOKUP bare fungerer fra høyre til venstre, ikke fra venstre til høyre.

I disse tilfellene må vi bruke kombinasjonsformelen til VBA INDEX & MATCH-funksjonen. La oss utføre oppgaven med å finne lønnsbeløpet for hver avdeling i VBA-koden.

Trinn 1: Start solrutinen.

Trinn 2: Deklarer VBA Integer-variabelen.

Kode:

Sub INDEX_MATCH_Example1 () Dim k Som Integer End Sub

Trinn 3: Åpne nå For Next Loop i VBA.

Kode:

Sub INDEX_MATCH_Example1 () Dim k Som Integer For k = 2 Til 5 Neste k End Sub

Trinn 4: Utfør formelen inne i VBA-sløyfen. I den femte kolonnen må vi bruke formelen, så koden er CELLS (k, 5) .Value =

Kode:

Sub INDEX_MATCH_Example1 () Dim k som heltall For k = 2 til 5 celler (k, 5). Verdi = Neste k End Sub

Trinn 5: I den cellen må vi bruke formelen VBA INDEX & MATCH. Som jeg sa, må vi bruke disse funksjonene som regnearkfunksjon i VBA-klasse, så åpne regnearkfunksjonsklassen.

Kode:

Sub INDEX_MATCH_Example1 () Dim k som heltall for k = 2 til 5 celler (k, 5) .Value = WorksheetFunction. Neste k End Sub

Trinn 6: Etter å ha kommet inn i regnearkfunksjonsklassen, kan vi se alle tilgjengelige regnearkfunksjoner, så velg INDEKS-funksjonen.

Kode:

Sub INDEX_MATCH_Example1 () Dim k Som Integer For k = 2 til 5 celler (k, 5) .Value = WorksheetFunction.Index (Next k End Sub

Trinn 7: Mens du bruker regnearkfunksjon i VBA, må du være helt sikker på argumentene til formelen. Det første argumentet er array dvs. fra hvilken kolonne vi trenger resultatet. I dette tilfellet trenger vi resultatet fra A2 til A5.

Kode:

Sub INDEX_MATCH_Example1 () Dim k as Integer For k = 2 til 5 celler (k, 5) .Value = WorksheetFunction.Index (Range ("A2: A5"), Next k End Sub

Trinn 8: Neste er fra hvilket radnummer vi trenger resultatet. Som vi har sett i det tidligere eksemplet, kan vi ikke oppgi radnummeret manuelt hver gang. Så bruk MATCH-funksjonen.

For å bruke MATCH-funksjonen igjen, må vi åpne klassen Funksjonsarkfunksjon.

Kode:

Sub INDEX_MATCH_Example1 () Dim k som heltall For k = 2 til 5 celler (k, 5) .Value = WorksheetFunction.Index (Range ("A2: A5"), WorksheetFunction.Match (Next k End Sub

Trinn 9: MATCH-funksjoner første argument er LOOKUP-verdien; her er oppslagsverdien vår avdelingsnavn; den er der i cellene (2, 4).

Siden hver gang radnummeret må endres, kan vi levere variabelen “k” i stedet for manuell rad nummer 2. Celler (k, 4).

Kode:

Sub INDEX_MATCH_Example1 () Dim k som heltall For k = 2 til 5 celler (k, 5) .Value = WorksheetFunction.Index (Range ("A2: A5"), WorksheetFunction.Match (Cells (k, 5) .Value, Next k End Sub

Trinn 10: Deretter må vi nevne avdelingsverdiområdet, dvs. Område (“B2: B5”).

Kode:

Sub INDEX_MATCH_Example1 () Dim k som heltal For k = 2 til 5 celler (k, 5) .Value = WorksheetFunction.Index (Range ("A2: A5"), WorksheetFunction.Match (Cells (k, 5) .Value, Range) ("B2: B5"),

Neste k

Slutt Sub

Trinn 11: Sett deretter argumentet som 0 fordi vi trenger en nøyaktig samsvar og lukk parentesene.

Kode:

Sub INDEX_MATCH_Example1 () Dim k som heltall For k = 2 til 5 celler (k, 5) .Value = WorksheetFunction.Index (Range ("A2: A5"), WorksheetFunction.Match (Cells (k, 4) .Value, Range ("B2: B5"), 0))

Neste k

Slutt Sub

Ok, vi er ferdige med kodingsdelen. La oss kjøre koden for å få resultatet i kolonne 5.

Så vi fikk resultatet.

Vi kan bruke denne formelen som et alternativ til VLOOKUP-funksjonen.

Interessante artikler...