Indeksna tekma v VBA
Funkcija INDEX & MATCH v kombinaciji VBA je alternativa funkciji VLOOKUP v Excelu. V VBA nimamo razkošja, da neposredno uporabljamo funkcijo INDEX & MATCH, ker ti dve funkciji nista del vgrajenih funkcij VBA. Vendar jih lahko še vedno uporabljamo kot del razreda funkcije delovnega lista.

Kako uporabiti indeksno ujemanje v VBA? (Korak za korakom)
Na primer, poglejte spodnje podatke.

V zgornjih podatkih je vrednost iskanja ime oddelka in na podlagi tega oddelka moramo izluščiti znesek plače.
Toda težava je v tem, da je stolpec z rezultati v prvem, stolpec iskalne vrednosti pa je nato stolpec z rezultati. V tem primeru VLOOKUP ne more doseči zneska plače, ker deluje le od desne proti levi, ne pa od leve proti desni.
V teh primerih moramo uporabiti kombinacijsko formulo funkcije VBA INDEX & MATCH. Izvedimo nalogo iskanja zneska plače vsakega oddelka v kodi VBA.
1. korak: Začnite s sončno rutino.
2. korak: Navedite spremenljivko VBA Integer.
Koda:
Sub INDEX_MATCH_Example1 () Dim k Kot celoštevilčni konec Sub

3. korak: Zdaj odprite For Next Loop v VBA.
Koda:
Sub INDEX_MATCH_Example1 () Dim k Kot celo število Za k = 2 do 5 Naslednje k End Sub

4. korak: V zanki VBA izvedite formulo. V 5 th stolpec, moramo uporabiti formulo, da je koda celice (K, 5) .Value =
Koda:
Sub INDEX_MATCH_Example1 () Dim k kot celo število Za k = 2 do 5 celic (k, 5). Vrednost = Naslednji k Konec Sub

5. korak: V tej celici moramo uporabiti formulo VBA INDEX & MATCH. Kot sem že povedal, moramo te funkcije uporabiti kot funkcijo delovnega lista v razredu VBA, zato odprite razred funkcije delovnega lista.
Koda:
Pod INDEX_MATCH_Example1 () Dim k kot celo število Za k = 2 do 5 celic (k, 5). Vrednost = Funkcija delovnega lista. Naprej k Konec Sub

6. korak: Po vnosu razreda funkcije delovnega lista lahko vidimo vse razpoložljive funkcije delovnega lista, zato izberite funkcijo INDEX.
Koda:
Sub INDEX_MATCH_Example1 () Dim k kot celo število za k = 2 do 5 celic (k, 5).

7. korak: Medtem ko uporabljate funkcijo delovnega lista v VBA, morate biti popolnoma prepričani v argumente formule. Prvi argument je matrika, tj. Iz katerega stolpca potrebujemo rezultat. V tem primeru potrebujemo rezultat od A2 do A5.
Koda:
Sub INDEX_MATCH_Example1 () Dim k kot celo število za k = 2 do 5 celic (k, 5).

Korak 8: Naslednje je od katere številke vrstice potrebujemo rezultat. Kot smo videli v prejšnjem primeru, ne moremo vsakič ročno vnesti številke vrstice. Torej uporabite funkcijo MATCH.
Za ponovno uporabo funkcije MATCH moramo odpreti razred Funkcije delovnega lista.
Koda:
Pod INDEX_MATCH_Example1 () Dim k kot celo število za k = 2 do 5 celic (k, 5). Vrednost = WorksheetFunction.Index (obseg ("A2: A5"), WorksheetFunction.Match (Naslednji k Konec Sub

9. korak: prvi argument funkcij MATCH je vrednost LOOKUP; tu so naša iskalna vrednost imena oddelkov; tam je v celicah (2, 4).
Ker se vsakič, ko se mora spremeniti številka vrstice, lahko namesto ročne številke vrstice 2 vnesemo spremenljivko „k“. Celice (k, 4).
Koda:
Pod INDEX_MATCH_Example1 () Dim k kot celo število za k = 2 do 5 celic (k, 5) .Value = WorksheetFunction.Index (obseg ("A2: A5"), WorksheetFunction.Match (celice (k, 5). k End Sub

Korak 10: Nato moramo omeniti obseg vrednosti oddelka, tj. Obseg (“B2: B5”).
Koda:
Pod INDEX_MATCH_Example1 () Dim k kot celo število za k = 2 do 5 celic (k, 5) .Value = WorksheetFunction.Index (obseg ("A2: A5"), WorksheetFunction.Match (celice (k, 5). ("B2: B5"),
Naslednji k
Končaj pod
11. korak: Nato argument postavite kot 0, ker potrebujemo natančno ujemanje in zapremo oklepaje.
Koda:
Pod INDEX_MATCH_Example1 () Dim k kot celo število za k = 2 do 5 celic (k, 5) .Value = WorksheetFunction.Index (obseg ("A2: A5"), WorksheetFunction.Match (celice (k, 4). ("B2: B5"), 0))
Naslednji k
Končaj pod
Ok, končali smo s kodiranjem. Zaženimo kodo, da bomo dobili rezultat v stolpcu 5.

Torej, dobili smo rezultat.
To formulo lahko uporabimo kot alternativo funkciji VLOOKUP.