VBA indeks match - Sådan bruges Index Match-funktion i VBA (eksempler)

Indholdsfortegnelse

Indeks match i VBA

INDEX & MATCH-funktion i VBA-kombination er alternativet til VLOOKUP-funktionen i Excel. I VBA har vi ikke den luksus at bruge INDEX & MATCH-funktionen direkte, fordi disse to funktioner ikke er en del af de indbyggede VBA-funktioner. Vi kan dog stadig bruge dem som en del af regnearkets funktionsklasse.

Sådan bruges Index Match i VBA? (Trin for trin)

Se f.eks. Nedenstående data.

I ovenstående data er opslagsværdien afdelingens navn, og baseret på dette afdelingsnavn er vi nødt til at udtrække lønbeløbet.

Men problemet her er, at resultatkolonnen er der i den første, og opslagsværdikolonnen er derefter resultatkolonnen. I dette tilfælde kan VLOOKUP ikke hente lønbeløbet, fordi VLOOKUP kun fungerer fra højre til venstre, ikke fra venstre mod højre.

I disse tilfælde er vi nødt til at bruge kombinationsformlen til VBA INDEX & MATCH-funktionen. Lad os udføre opgaven med at finde lønningsbeløbet for hver afdeling i VBA-koden.

Trin 1: Start solrutinen.

Trin 2: Erklær VBA Integer-variablen.

Kode:

Sub INDEX_MATCH_Example1 () Dim k Som Integer End Sub

Trin 3: Åbn nu for næste løkke i VBA.

Kode:

Sub INDEX_MATCH_Example1 () Dim k som heltal For k = 2 til 5 Næste k Afslut sub

Trin 4: Udfør formlen inde i VBA-sløjfen. I den femte kolonne skal vi anvende formlen, så koden er CELLS (k, 5) .Værdi =

Kode:

Sub INDEX_MATCH_Example1 () Dim k som heltal For k = 2 til 5 celler (k, 5). Værdi = Næste k Afslut sub

Trin 5: I den celle skal vi anvende VBA INDEX & MATCH-formlen. Som jeg fortalte, skal vi bruge disse funktioner som regnearkfunktion i VBA-klasse, så åbn regnearkets funktionsklasse.

Kode:

Sub INDEX_MATCH_Example1 () Dim k som heltal For k = 2 til 5 celler (k, 5) .Value = WorksheetFunction. Næste k Afslut Sub

Trin 6: Efter indtastning af regnearkets funktionsklasse kan vi se alle de tilgængelige regnearksfunktioner, så vælg INDEX-funktionen.

Kode:

Sub INDEX_MATCH_Example1 () Dim k som heltal For k = 2 til 5 celler (k, 5). Værdi = WorksheetFunction.Index (Next k End Sub

Trin 7: Mens du bruger regnearkfunktion i VBA, skal du være helt sikker på argumenterne for formlen. Det første argument er array dvs. fra hvilken kolonne vi har brug for resultatet. I dette tilfælde har vi brug for resultatet fra A2 til A5.

Kode:

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

Trin 8: Næste er fra hvilket række nummer vi har brug for resultatet. Som vi har set i det tidligere eksempel, kan vi ikke manuelt angive række nummer hver gang. Så brug MATCH-funktionen.

For at bruge MATCH-funktionen igen skal vi åbne klassen Funktionsarkfunktion.

Kode:

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

Trin 9: MATCH-funktioner første argument er LOOKUP-værdien; her er vores opslagsværdi afdelingsnavne; den er der i cellerne (2, 4).

Da hver gang række nummer skal ændres, kan vi levere variablen “k” i stedet for manuel række nummer 2. Celler (k, 4) .Værdi

Kode:

Sub INDEX_MATCH_Example1 () Dim k som heltal For k = 2 til 5 celler (k, 5). Værdi = WorksheetFunction.Index (Range ("A2: A5"), WorksheetFunction.Match (Cells (k, 5). Value, Next k Afslut Sub

Trin 10: Dernæst skal vi nævne afdelingens værdiområde, dvs. Range (“B2: B5”).

Kode:

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

Næste k

Afslut sub

Trin 11: Sæt derefter argumentet som 0, fordi vi har brug for en nøjagtig matchning og luk parenteserne.

Kode:

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

Næste k

Afslut sub

Ok, vi er færdige med kodningsdelen. Lad os køre koden for at få resultatet i kolonne 5.

Så vi fik resultatet.

Vi kan bruge denne formel som et alternativ til VLOOKUP-funktionen.

Interessante artikler...