Vlookup - mitu tulemust VBA abil - VBA koodinäited

Lang L: none (table-of-contents)

Vlookup tekst

Tavalist funktsiooni Vlookup saab kasutada tabeli väärtuse leidmiseks:

Ja me kasutaksime VLOOKUPi järgmiselt:

= VLOOKUP (A1: 10, "Koer", 2, VÄÄR)

anda väärtus 30.

Kuid selles loendis näeme, et koer esineb 3 korda. Tavaline funktsioon VLOOKUP tagastab ainult selle loendi esimese üksusega seotud väärtuse. See ei tagasta 125 või 9250 koos loendi teise või kolmanda eksemplariga.

Vlookupi mitu tulemust

Järgmine funktsioon võimaldab meil määrata vahemiku, otsitava avaldise ja eksemplari (tulemuse numbri) ning seejärel tagastada vastava väärtuse:

Funktsioon Find_nth_Occurrence (veeru_vahemik vahemikuna, avaldis stringina, occ täisarvuna) kahekordse tuhmiga lahtrikujulisena Dim esinemised_kuupäev täisarvuna Find_nth_Occurrence = 1000000 esinemiskoha_kuupäev = 0 iga lahtri kohta veerus_vahemik, kui lahtri väärtus = avaldumise kord Siis Find_nth_Occurrence = Cell.Offset (0, 1). Väärtus End If End Kui järgmine lahtri lõppfunktsioon

Peamine erinevus selle ja standardse VLOOKUP -funktsiooni vahel on see, et sel juhul on vahemik ainus siltide vahemik - mitte kogu andmevahemik.
Järgnev on alamprogramm, mis kutsub seda funktsiooni käsunupult klõpsamise sündmuse põhjal. See näeb lehel2 sõna Koer kolmanda astme vahemikus A1: A8:

Privaatne alamkäsk CommandButton1_Click () Summuta vastus topeltvastusena = Find_nth_Occurrence (Sheets ("Sheet2"). Vahemik ("A1: A8"), "Dog", 3) MsgBox AnswerEnd Sub

Muutuja „Vastus“ salvestab funktsiooni tulemuse - mis kuvatakse seejärel ekraanil Msgboxis:

> Kui aga sõna ei leia loendist või sagedust ei esine, nt sõna „koer” viiendat eksemplari pole, tagastatakse väärtus 1 000 000:-
Vastus = Find_nth_Occurrence (Lehed („Leht2”). Vahemik („A1: A8”), „Koer”, 5)
Või
Vastus = Find_nth_Occurrence (Lehed („Leht2”). Vahemik („A1: A8”), „Hobune”, 2)

wave wave wave wave wave