„Vlookup“ - keli rezultatai naudojant VBA - VBA kodo pavyzdžiai

„Vlookup“ tekstas

Standartinė „Vlookup“ funkcija gali būti naudojama norint rasti vertę lentelėje:

Ir mes naudosime VLOOKUP taip:

= ATSIŽVELGIMAS (A1: 10, „Šuo“, 2, NETIESA)

duoti vertę 30.

Tačiau šiame sąraše matome, kad šuo pasitaiko 3 kartus. Standartinė VLOOKUP funkcija grąžins tik vertę, susietą su pirmuoju šio sąrašo elementu. Tai negrąžins 125 ar 9 250 su 2 ar 3 „šuns“ pavyzdžiais šiame sąraše.

„Vlookup“ keli rezultatai

Ši funkcija leidžia mums nurodyti diapazoną, ieškomą išraišką ir egzempliorių (rezultato numerį) ir grąžinti atitinkamą reikšmę:

Funkcija Find_nth_Occurrence (stulpelio_ diapazonas kaip diapazonas, išraiška kaip eilutė, occ kaip sveikasis skaičius) kaip dvigubai matinis langelio dydis Dim Occurrences_to_date kaip sveikasis skaičius Find_nth_Occurrence = 1000000 įvykių_to_data = 0 kiekvienai langelio stulpelio_ diapazone Jei ląstelės reikšmė = pasireiškimas Tada Find_nth_Occurrence = Cell.Offset (0, 1). Vertė End If End

Pagrindinis skirtumas tarp šios ir standartinės VLOOKUP funkcijos yra tas, kad šiuo atveju diapazonas yra vienintelis etikečių diapazonas, o ne visas duomenų diapazonas.
Toliau pateikiamas paprogramis, kuris iškviečia šią funkciją pagal paspaudimo įvykį iš komandos mygtuko. 2 lape jis atrodo A1: A8 diapazone, trečiajam žodžio Šuo egzemplioriui:

Privatus antrinis CommandButton1_Click () Dim Dimension Answer as Double Answer = Find_nth_Occurrence (Skaičiuoklės („Sheet2“). Diapazonas („A1: A8“), „Šuo“, 3) „MsgBox AnswerEnd Sub“

Kintamasis „Atsakymas“ išsaugo funkcijos rezultatą, kuris tada rodomas „Msgbox“ ekrane:

> Tačiau jei žodžio negalima rasti sąraše arba dažnis neįvyksta, pvz., Nėra penktojo žodžio „šuo“ egzemplioriaus, grąžinama 1 000 000 vertė:-
Atsakymas = Find_nth_Occurrence (Skaičiuoklės („Sheet2“). Diapazonas („A1: A8“), „Šuo“, 5)
Arba
Atsakymas = Find_nth_Occurrence (Skaičiuoklės („Sheet2“). Diapazonas („A1: A8“), „Arklys“, 2)

wave wave wave wave wave