Text v prehliadači
Na nájdenie hodnoty v tabuľke je možné použiť štandardnú funkciu Vlookup:
A použili by sme VLOOKUP takto:
= VLOOKUP (A1: 10, „pes“, 2, NEPRAVDA)
dať hodnotu 30.
V tomto zozname však vidíme, že Pes sa vyskytuje 3 krát. Štandardná funkcia VLOOKUP vráti iba hodnotu spojenú s prvou položkou v tomto zozname. Nevráti 125 alebo 9 250 s 2. alebo 3. inštanciou „psa“ v tomto zozname.
Vlookup Viacnásobné výsledky
Nasledujúca funkcia nám umožňuje zadať rozsah, výraz, ktorý sa má hľadať, inštanciu (číslo výsledku) a potom vrátiť zodpovedajúcu hodnotu:
Funkcia Find_nth_Occurrence (Column_Range As Range, Expression As String, Occ as Integer) As Double Dim Cell Dim Occurrences_to_date As Integer Find_nth_Occurrence = 1000000 Occurrences_to_date = 0 For each Cell In Column_Range If Cell.Value = Excurto__curcurences_ Potom Find_nth_Occurrence = Cell.Offset (0, 1). Value End If End If Next Cell End Function
Hlavný rozdiel medzi touto a štandardnou funkciou VLOOKUP je v tom, že v tomto prípade je rozsah jediným rozsahom štítkov - nie celým rozsahom údajov.
Nasleduje podprogram, ktorý volá túto funkciu na základe udalosti kliknutia z príkazového tlačidla. Vyzerá to v rozsahu A1: A8 na hárku 2, pre 3. inštanciu slova Pes:
Private Sub CommandButton1_Click () Dim Answer as Double Answer = Find_nth_Occurrence (Sheets ("Sheet2"). Range ("A1: A8"), "Dog", 3) MsgBox AnswerEnd Sub
Premenná „Odpoveď“ ukladá výsledok funkcie - ktorý sa potom zobrazí v okne Msgbox na obrazovke:
> Ak však slovo nemožno nájsť v zozname alebo sa frekvencia nevyskytuje, napríklad neexistuje 5. inštancia slova „pes“, vráti sa hodnota 1 000 000:-
Odpoveď = Nájsť_n__výskyt (Listy („List2“). Rozsah („A1: A8“), „Pes“, 5)
Alebo
Odpoveď = Find_nth_Occurrence (Sheets (“Sheet2”). Range (“A1: A8”), “Horse”, 2)