Indeksna utakmica u VBA
INDEX & MATCH funkcija u VBA kombinaciji je alternativa VLOOKUP funkciji u excelu. U VBA-u nemamo luksuz koristiti izravno INDEX & MATCH funkciju jer ove dvije funkcije nisu dio ugrađenih VBA-funkcija. Međutim, i dalje ih možemo koristiti kao dio klase funkcija radnog lista.

Kako koristiti indeksno podudaranje u VBA? (Korak po korak)
Na primjer, pogledajte podatke u nastavku.

U gornjim podacima vrijednost pretraživanja je naziv Odjela i na temelju ovog odjela moramo izdvojiti iznos plaće.
Ali problem je ovdje što je stupac rezultata tu u prvom, a stupac tražene vrijednosti je nakon toga stupac rezultata. U ovom slučaju, VLOOKUP ne može dohvatiti iznos plaće jer VLOOKUP radi samo zdesna nalijevo, a ne slijeva na desno.
U tim slučajevima trebamo koristiti formulu kombinacije funkcije VBA INDEX & MATCH. Izvršimo zadatak pronalaženja iznosa plaće svakog odjela u VBA kodu.
Korak 1: Započnite sunčanu rutinu.
Korak 2: Proglasite VBA Integer varijablu.
Kodirati:
Sub INDEX_MATCH_Example1 () Dim k Kao cjeloviti kraj Sub

Korak 3: Sada otvorite For Next Loop u VBA.
Kodirati:
Sub INDEX_MATCH_Example1 () Dim k kao cijelo za k = 2 do 5 Sljedeće k Kraj Sub

Korak 4: Izvršite formulu unutar VBA petlje. U 5 th stupcu potrebno primijeniti formulu, tako da je kod stanice (k, 5) = .Value
Kodirati:
Sub INDEX_MATCH_Example1 () Dim k kao cijelo za k = 2 do 5 ćelija (k, 5) .Vrijednost = Sljedeći k Kraj Sub

Korak 5: U toj ćeliji moramo primijeniti formulu VBA INDEX & MATCH. Kao što sam rekao, ove funkcije moramo koristiti kao funkciju radnog lista u VBA klasi, pa otvorite klasu funkcija radnog lista.
Kodirati:
Pod INDEX_MATCH_Example1 () Dim k kao cjelina za k = 2 do 5 ćelija (k, 5) .Vrijednost = Funkcija radnog lista. Dalje k Kraj Sub

Korak 6: Nakon ulaska u klasu funkcije radnog lista, možemo vidjeti sve dostupne funkcije radnog lista, pa odaberite funkciju INDEX.
Kodirati:
Pod INDEX_MATCH_Example1 () Dim k kao cjelobrojno za k = 2 do 5 ćelija (k, 5) .Vrijednost = Radni listFunction.Index (Sljedeći k Kraj Sub

Korak 7: Dok koristite funkciju radnog lista u VBA, morate biti potpuno sigurni u argumente formule. Prvi je argument niz, tj. Iz kojeg stupca trebamo rezultat. U ovom slučaju trebamo rezultat od A2 do A5.
Kodirati:
Pod INDEX_MATCH_Example1 () Dim k kao cjelobrojno za k = 2 do 5 ćelija (k, 5) .Vrijednost = Funkcija radnog lista.Index (Raspon ("A2: A5"), sljedeći k Kraj Sub

Korak 8: Slijedi koji redni broj trebamo rezultat. Kao što smo vidjeli u ranijem primjeru, ne možemo svaki put ručno navesti broj retka. Dakle, upotrijebite funkciju MATCH.
Da bismo još jednom koristili funkciju MATCH, moramo otvoriti klasu Funkcija radnog lista.
Kodirati:
Pod INDEX_MATCH_Example1 () Dim k kao cijelo za k = 2 do 5 ćelija (k, 5) .Value = WorksheetFunction.Index (Raspon ("A2: A5"), WorksheetFunction.Match (Sljedeći k Kraj Sub)

Korak 9: MATCH funkcije prvi argument je LOOKUP vrijednost; ovdje su naša vrijednost pretraživanja nazivi odjela; tamo je u stanicama (2, 4).
Budući da se svaki put kada se mora mijenjati broj retka, možemo unijeti varijablu "k" umjesto ručnog retka broj 2. Stanice (k, 4). Vrijednost
Kodirati:
Pod INDEX_MATCH_Example1 () Dim k kao cijelo za k = 2 do 5 ćelija (k, 5) .Value = WorksheetFunction.Index (Raspon ("A2: A5"), WorksheetFunction.Match (Ćelije (k, 5). Vrijednost, sljedeća k Kraj pod

Korak 10: Dalje, moramo spomenuti raspon vrijednosti odjela, tj. Raspon („B2: B5“).
Kodirati:
Pod INDEX_MATCH_Example1 () Dim k kao cijelo za k = 2 do 5 ćelija (k, 5) .Value = WorksheetFunction.Index (Raspon ("A2: A5"), WorksheetFunction.Match (Ćelije (k, 5). Vrijednost, raspon ("B2: B5"),
Sljedeće k
Kraj pod
11. korak: Zatim stavite argument kao 0 jer nam treba točno podudaranje i zatvorimo zagrade.
Kodirati:
Pod INDEX_MATCH_Example1 () Dim k kao cjelovito za k = 2 do 5 ćelija (k, 5) .Value = WorksheetFunction.Index (Raspon ("A2: A5"), WorksheetFunction.Match (Ćelije (k, 4). Vrijednost, raspon ("B2: B5"), 0))
Sljedeće k
Kraj pod
U redu, završili smo s kodiranjem. Pokrenimo kôd da bismo dobili rezultat u stupcu 5.

Dakle, dobili smo rezultat.
Ovu formulu možemo koristiti kao alternativu funkciji VLOOKUP.