Podudaranje indeksa VBA - Kako se koristi funkcija podudaranja indeksa u VBA (primjeri)

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.

Zanimljivi članci...