VBA indeksi vaste - Indeksivastefunktsiooni kasutamine VBA-s (näited)

Lang L: none (table-of-contents)

Indeksimatš VBA-s

INDEKS & MATCH funktsioon VBA kombinatsioonis on alternatiiv funktsioonile VLOOKUP Excelis. VBA-s pole meil luksust 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)

Nä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 probleem on selles, et tulemuste veerg on seal esimeses ja otsitava vää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: avage nüüd 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: käivitage VBA-silmuse sees valem. In 5 th kolonn, peame kohaldama valemis nii kood on rakud (k, 5) .Value =

Kood:

ALA INDEX_MATCH_Näide1 () Mõõt k k täisarvuna väärtusele 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 VBA klassis neid funktsioone töölehe funktsioonina kasutama, seega 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, seega 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-s töölehe funktsiooni kasutamisel peate olema valemi argumentides täiesti kindel. Esimene argument on massiiv, st millisest veerust me tulemust vajame. Sel juhul vajame 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 varasemas näites nägime, ei saa me rea numbrit iga kord käsitsi sisestada. Nii et kasutage funktsiooni MATCH.

Funktsiooni MATCH taas kasutamiseks tuleb avada klass Worksheet Function.

Kood:

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 väärtus LOOKUP; siin on meie otsinguväärtus osakondade nimed; see on seal rakkudes (2, 4).

Kuna iga kord, kui 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: Seejärel pange argument väärtuseks 0, kuna vajame täpset vastet ja sulgege sulgud.

Kood:

Indeks INDEX_MATCH_Eexample1 () Mõõt k täisarvuna k = 2 kuni 5 lahtrit (k, 5). Väärtus = WorksheetFunction.Index (vahemik ("A2: A5"), WorksheetFunction.Match (lahtrid (k, 4). Väärtus, vahemik) ("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.

Huvitavad Artiklid...