VBA indekso rungtynės - Kaip naudoti indekso atitikties funkciją VBA (pavyzdžiai)

Indekso rungtynės VBA

„INDEX & MATCH“ funkcija VBA derinyje yra alternatyva „VLOOKUP“ funkcijai „Excel“. VBA neturime prabangos tiesiogiai naudoti „INDEX & MATCH“ funkciją, nes šios dvi funkcijos nėra VBA integruotų funkcijų dalis. Tačiau mes vis tiek galime juos naudoti kaip darbalapio funkcijų klasės dalį.

Kaip naudoti indekso atitikmenį VBA? (Žingsnis po žingsnio)

Pavyzdžiui, pažiūrėkite į toliau pateiktus duomenis.

Pirmiau pateiktuose duomenyse paieškos vertė yra skyriaus pavadinimas, o pagal šį skyriaus pavadinimą turime išgauti atlyginimo sumą.

Tačiau problema yra rezultatų stulpelis, esantis pirmajame, o paieškos vertės stulpelis yra rezultatų stulpelyje. Šiuo atveju VLOOKUP negali gauti atlyginimo sumos, nes VLOOKUP veikia tik iš dešinės į kairę, o ne iš kairės į dešinę.

Šiais atvejais turime naudoti funkcijos VBA INDEX & MATCH derinio formulę. Atlikime užduotį rasti VBA kode kiekvieno skyriaus atlyginimo dydį.

1 žingsnis: pradėkite saulės režimą.

2 žingsnis: paskelbkite kintamąjį VBA sveikąjį skaičių.

Kodas:

INDEX_MATCH_Pavyzdys1 () Dim k kaip sveikojo galo antrinis

3 žingsnis: Dabar atidarykite „Next Loop“ VBA.

Kodas:

INDEX_MATCH_Pavyzdys1 () Dimensija k kaip sveikoji vertė k = 2–5 Kitas k Pabaiga Sub

4 žingsnis: VBA kilpos viduje vykdykite formulę. 5 -ajame stulpelyje turime taikyti formulę, taigi kodas yra CELLS (k, 5).

Kodas:

INDEX_MATCH_Pavyzdys1 () Dim k kaip sveikoji k = 2–5 ląstelės (k, 5). Vertė = Kitas k End Sub

5 žingsnis: Toje ląstelėje turime pritaikyti VBA INDEX & MATCH formulę. Kaip sakiau, VBA klasėje turime naudoti šias funkcijas kaip darbalapio funkciją, todėl atidarykite darbalapio funkcijų klasę.

Kodas:

INDEX_MATCH_Pavyzdys1 () Dim k kaip sveikoji k = 2–5 ląstelės (k, 5). Vertė = WorksheetFunction. Kitas k End Sub

6 žingsnis: Įvedę darbalapio funkcijų klasę, galime pamatyti visas galimas darbalapio funkcijas, todėl pasirinkite funkciją INDEX.

Kodas:

INDEX_MATCH_Pavyzdys1 () Dimensija k kaip sveikoji k = 2–5 ląstelės (k, 5). Vertė = WorksheetFunction.Index (Kitas k End Sub

7 žingsnis: VBA naudodami darbalapio funkciją turite būti visiškai tikri dėl formulės argumentų. Pirmasis argumentas yra masyvas, ty iš kurio stulpelio mums reikia rezultato. Šiuo atveju mums reikia rezultato nuo A2 iki A5.

Kodas:

INDEX_MATCH_Pavyzdys1 () Dim k kaip sveikoji k = 2–5 ląstelės (k, 5). Vertė = WorksheetFunction.Index (Diapazonas ("A2: A5"), Kitas k End Sub

8 žingsnis: Toliau einame iš kurio eilutės numerio mums reikia rezultato. Kaip matėme ankstesniame pavyzdyje, mes negalime kiekvieną kartą rankiniu būdu pateikti eilutės numerio. Taigi naudokitės funkcija MATCH.

Norėdami dar kartą naudoti funkciją MATCH, turime atidaryti „Worksheet Function“ klasę.

Kodas:

INDEX_MATCH_Pavyzdys1 () Dimensija k kaip sveikoji k = 2–5 ląstelės (k, 5). Vertė = WorksheetFunction.Index (Diapazonas ("A2: A5"), WorksheetFunction.Match (Kitas k End Sub)

9 žingsnis: „ MATCH“ funkcijos pirmasis argumentas yra LOOKUP reikšmė; čia mūsų paieškos vertė yra skyrių pavadinimai; jis yra ląstelėse (2, 4).

Kadangi kiekvieną kartą, kai eilutės numeris turi keistis, vietoj rankinės 2 eilutės numerio galime pateikti kintamąjį „k“. Ląstelės (k, 4).

Kodas:

INDEX_MATCH_Pavyzdys1 () Dimensija k kaip sveikoji k = 2–5 ląstelės (k, 5). Vertė = WorksheetFunction.Index (Diapazonas ("A2: A5"), WorksheetFunction.Match (Langeliai (k, 5). Vertė, Kitas) k Pabaigos antr

10 žingsnis: Toliau turime paminėti skyriaus vertės diapazoną, ty diapazoną („B2: B5“).

Kodas:

INDEX_MATCH_Pavyzdys1 () Dim k kaip sveikoji k = 2–5 langeliai (k, 5). Vertė = WorksheetFunction.Index (diapazonas ("A2: A5"), WorksheetFunction.Match (langeliai (k, 5). Reikšmė, diapazonas) („B2: B5“),

Kitas k

Pabaigos sub

11 žingsnis: Tada įveskite argumentą kaip 0, nes mums reikia tikslios atitikties ir uždarykite skliaustus.

Kodas:

INDEX_MATCH_Pavyzdys1 () Dimensija k kaip sveikoji k = 2–5 ląstelės (k, 5). Vertė = WorksheetFunction.Index (diapazonas ("A2: A5"), WorksheetFunction.Match (ląstelės (k, 4). Reikšmė, diapazonas) („B2: B5“), 0))

Kitas k

Pabaigos sub

Gerai, mes baigėme kodavimo dalį. Paleiskime kodą, kad rezultatas būtų 5 stulpelyje.

Taigi, mes gavome rezultatą.

Šią formulę galime naudoti kaip alternatyvą funkcijai VLOOKUP.

Įdomios straipsniai...