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 nėra prabanga 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)

Šį „VBA Index Match Excel“ šabloną galite atsisiųsti čia - „VBA Index Match Excel“ šablonas

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

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

Tačiau problema yra rezultatų stulpelis, esantis pirmajame, o paieškos vertės stulpelyje yra rezultatų stulpelis. Š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 ciklo viduje vykdykite formulę. 5-ame stulpelyje turime taikyti formulę, taigi kodas yra CELLS (k, 5). Vertė =

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 taikyti VBA INDEX & MATCH formulę. Kaip sakiau, šias funkcijas turime naudoti kaip „Worksheet Function“ vba klasėje, 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 turimas 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 () Dimensija k kaip sveikoji k = 2–5 ląstelės (k, 5). Vertė = WorksheetFunction.Index (Diapazonas ("A2: A5"), Kitas k End Sub 

8 žingsnis: Kitas yra eilutės numeris, kuriam mums reikia rezultato. Kaip matėme ankstesnį pavyzdį, kiekvieną kartą rankiniu būdu eilutės numerio pateikti negalime. Taigi naudokitės funkcija MATCH.

Norėdami dar kartą naudotis funkcija 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, ji yra langeliuose (2, 4).

Kadangi kiekvieną kartą eilutės numeris turi keistis, vietoj rankinio 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 ląstelės (k, 5). Vertė = WorksheetFunction.Index (diapazonas ("A2: A5"), WorksheetFunction.Match (ląstelės (k, 5). Reikšmė, diapazonas) („B2: B5“), 

Kitas k

Pabaigos sub

11 žingsnis: Toliau į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.


$config[zx-auto] not found$config[zx-overlay] not found