VBA Index Match - Så här använder du indexmatchningsfunktion i VBA (exempel)

Innehållsförteckning

Indexmatchning i VBA

INDEX & MATCH-funktion i VBA-kombination är alternativet till VLOOKUP-funktionen i Excel. I VBA har vi inte lyxen att använda INDEX & MATCH-funktionen direkt eftersom dessa två funktioner inte ingår i VBA-inbyggda funktioner. Vi kan dock fortfarande använda dem som en del av kalkylbladets funktionsklass.

Hur använder man Index Match i VBA? (Steg för steg)

Titta till exempel på nedanstående data.

I ovanstående data är uppslagsvärdet avdelningsnamnet, och baserat på detta avdelningsnamn måste vi extrahera lönebeloppet.

Men problemet här är att resultatkolumnen är där i den första, och uppslagsvärdekolumnen är därefter resultatkolumnen. I det här fallet kan VLOOKUP inte hämta lönebeloppet eftersom VLOOKUP bara fungerar från höger till vänster, inte från vänster till höger.

I dessa fall måste vi använda kombinationsformeln för VBA INDEX & MATCH-funktionen. Låt oss utföra uppgiften att hitta lönebeloppet för varje avdelning i VBA-koden.

Steg 1: Starta solrutinen.

Steg 2: Förklara variabeln VBA Integer.

Koda:

Sub INDEX_MATCH_Example1 () Dim k Som heltal End Sub

Steg 3: Öppna nu för nästa slinga i VBA.

Koda:

Sub INDEX_MATCH_Example1 () Dim k Som heltal För k = 2 till 5 Nästa k Avslut Sub

Steg 4: Utför formeln inuti VBA-slingan. I den femte kolumnen måste vi tillämpa formeln, så koden är CELLS (k, 5) .Värde =

Koda:

Sub INDEX_MATCH_Example1 () Dim k som heltal För k = 2 till 5 celler (k, 5). Värde = Nästa k Avsluta sub

Steg 5: I den cellen måste vi tillämpa VBA INDEX & MATCH-formeln. Som jag sa, måste vi använda dessa funktioner som kalkylbladfunktion i VBA-klass, så öppna kalkylarkets funktionsklass.

Koda:

Sub INDEX_MATCH_Example1 () Dim k som heltal för k = 2 till 5 celler (k, 5) .Value = WorksheetFunction. Nästa k Avsluta Sub

Steg 6: Efter att ha gått in i kalkylbladets funktionsklass kan vi se alla tillgängliga kalkylarkfunktioner, så välj INDEX-funktionen.

Koda:

Sub INDEX_MATCH_Example1 () Dim k som heltal För k = 2 till 5 celler (k, 5) .Value = WorksheetFunction.Index (Next k End Sub

Steg 7: När du använder kalkylfunktionen i VBA måste du vara helt säker på argumenten med formeln. Det första argumentet är array dvs från vilken kolumn vi behöver resultatet. I det här fallet behöver vi resultatet från A2 till A5.

Koda:

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

Steg 8: Nästa är från vilket radnummer vi behöver resultatet. Som vi har sett i det tidigare exemplet kan vi inte manuellt ange radnumret varje gång. Så använd MATCH-funktionen.

För att använda MATCH-funktionen en gång till måste vi öppna klassen Arbetsbladets funktion.

Koda:

Sub INDEX_MATCH_Example1 () Dim k som heltal För k = 2 till 5 celler (k, 5) .Value = WorksheetFunction.Index (Range ("A2: A5"), WorksheetFunction.Match (Next k End Sub

Steg 9: MATCH-funktioner första argumentet är LOOKUP-värdet; här är vårt sökvärde avdelningsnamn; den finns där i cellerna (2, 4).

Eftersom varje gång radnumret måste ändras kan vi leverera variabeln "k" istället för manuell rad nummer 2. Celler (k, 4) .Värde

Koda:

Sub INDEX_MATCH_Example1 () Dim k som heltal För k = 2 till 5 celler (k, 5) .Value = WorksheetFunction.Index (Range ("A2: A5"), WorksheetFunction.Match (Cells (k, 5) .Value, Next k Avsluta sub

Steg 10: Därefter måste vi nämna avdelningens värdeområde, dvs. Range (“B2: B5”).

Koda:

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

Nästa k

Avsluta sub

Steg 11: Sätt sedan argumentet som 0 eftersom vi behöver en exakt matchning och stäng parenteserna.

Koda:

Sub INDEX_MATCH_Example1 () Dim k som heltal För k = 2 till 5 celler (k, 5) .Value = WorksheetFunction.Index (Range ("A2: A5"), WorksheetFunction.Match (Cells (k, 4) .Value, Range) ("B2: B5"), 0))

Nästa k

Avsluta sub

Okej, vi är klara med kodningsdelen. Låt oss köra koden för att få resultatet i kolumn 5.

Så vi fick resultatet.

Vi kan använda denna formel som ett alternativ till VLOOKUP-funktionen.

Intressanta artiklar...