VBA indeksi vaste | Indeksivastefunktsiooni kasutamine VBA-s (näited)
Indeksimatš VBA-s
INDEKS & MATCH funktsioon VBA kombinatsioonis on alternatiiv funktsioonile VLOOKUP Excelis. VBA-s pole luksus kasutada funktsiooni INDEX & MATCH otse, kuna need kaks funktsiooni ei kuulu VBA sisseehitatud funktsioonide hulka. Kuid saame neid siiski kasutada töölehe funktsiooniklassi osana.
Kuidas kasutada indeksimängu VBA-s? (Samm sammu haaval)
Selle VBA Index Match Exceli malli saate alla laadida siit - VBA Index Match Exceli mallNäiteks vaadake allolevaid andmeid.
Ülaltoodud andmetes on otsingu väärtus osakonna nimi ja selle osakonna nime põhjal peame välja võtma palgasumma.
Kuid probleemiks on tulemuste veerg, mis asub esimeses, ja otsinguväärtuse veerg on pärast tulemuste veergu. Sellisel juhul ei saa VLOOKUP palgasummat tuua, kuna VLOOKUP töötab ainult paremalt vasakule, mitte vasakult paremale.
Nendel juhtudel peame kasutama funktsiooni VBA INDEX & MATCH kombinatsioonivalemit. Täidame ülesande leida iga osakonna palgasumma VBA-koodist.
1. samm: alustage päikese rutiini.
2. samm: deklareerige muutuja VBA Integer.
Kood:
Alamindeks INDEX_MATCH_Eexample1 () Dim k As Integer End Sub
3. samm: nüüd avage VBA-s järgmine silmus.
Kood:
ALA INDEX_MATCH_Näide1 () Mõõt k täisarvuna väärtusele k = 2 kuni 5 Järgmine k Lõpp alam
4. samm: täitke valem VBA-silmuse sees. 5. veerus peame rakendama valemit, nii et kood on CELLS (k, 5). Väärtus =
Kood:
ALA INDEX_MATCH_Näide1 () Dim k k täisarvuna k = 2 kuni 5 lahtrit (k, 5). Väärtus = Järgmine k Lõpp alam
5. samm: selles lahtris peame rakendama valemit VBA INDEX & MATCH. Nagu ma ütlesin, peame neid funktsioone vba klassis töölehe funktsioonina kasutama, nii et avage töölehe funktsioonide klass.
Kood:
Alamindeks INDEX_MATCH_Näide1 () Mõõt k k täisarvuna väärtusele k = 2 kuni 5 lahtrit (k, 5). Väärtus = Töölehe funktsioon. Järgmine k End Sub
6. samm: Pärast töölehe funktsiooniklassi sisestamist näeme kõiki saadaolevaid töölehe funktsioone, nii et valige funktsioon INDEX.
Kood:
Alam INDEX_MATCH_Eexample1 () Mõõt k k täisarvuna väärtusele k = 2 kuni 5 lahtrit (k, 5). Väärtus = WorksheetFunction.Index (järgmine k End Sub
7. samm: VBA-is töölehe funktsiooni kasutamisel peate olema valemi argumentides täiesti kindel. Esimene argument on massiiv, st millisest veerust tulemust vajame, antud juhul on vaja tulemust vahemikust A2 kuni A5.
Kood:
ALA INDEX_MATCH_Eexample1 () Mõõt k k täisarvuna väärtusele k = 2 kuni 5 lahtrit (k, 5). Väärtus = WorksheetFunction.Index (vahemik ("A2: A5"), järgmine k Lõpp alam
8. samm: Järgmine on see, millisest rea numbrist me tulemust vajame. Nagu nägime varasemat näidet, ei saa me rea numbrit iga kord käsitsi sisestada. Nii et kasutage funktsiooni MATCH.
Funktsiooni MATCH veel kord kasutamiseks tuleb avada klass Worksheet Function.
Kood:
Alamindeks INDEX_MATCH_Eexample1 () Dim k k täisarvuna k = 2 kuni 5 lahtrit (k, 5). Väärtus = WorksheetFunction.Index (vahemik ("A2: A5"), WorksheetFunction.Match (järgmine k End Sub
9. samm: MATCH-funktsioonide esimene argument on LOOKUP väärtus, siin on meie otsingu väärtus osakonna nimed, see on seal lahtrites (2, 4).
Kuna iga rea number peab muutuma, võime manuaalse rea numbri 2 asemel esitada muutuja k. Lahtrid (k, 4).
Kood:
Alamindeks INDEX_MATCH_Eexample1 () Dim k täisarvuna k = 2 kuni 5 lahtrit (k, 5). Väärtus = WorksheetFunction.Index (Range ("A2: A5"), WorksheetFunction.Match (Cells (k, 5). Väärtus, järgmine k Lõpeta alam
10. samm: Järgmisena peame mainima osakonna väärtuste vahemikku, st vahemikku ("B2: B5").
Kood:
Alamindeks INDEX_MATCH_Eexample1 () Dim k täisarvuna k = 2 kuni 5 lahtrit (k, 5). Väärtus = WorksheetFunction.Index (Range ("A2: A5"), WorksheetFunction.Match (Cells (k, 5). Väärtus, Range) ("B2: B5"),
Järgmine k
Lõpeta alam
11. samm: Järgmisena pange argument väärtuseks 0, kuna vajame täpset vastet ja sulgeme sulgud.
Kood:
Alamindeks INDEX_MATCH_Eexample1 () Dim k täisarvuna k = 2 kuni 5 lahtrit (k, 5). Väärtus = WorksheetFunction.Index (Range ("A2: A5"), WorksheetFunction.Match (Cells (k, 4). Väärtus, Range) ("B2: B5"), 0))
Järgmine k
Lõpeta alam
Ok, kodeerimisosaga oleme valmis. Käivitame koodi, et tulemus oleks 5. veerus.
Nii et saime tulemuse.
Seda valemit saame kasutada funktsiooni VLOOKUP alternatiivina.