Vlookup Text
K vyhledání hodnoty v tabulce lze použít standardní funkci Vlookup:
A použili bychom VLOOKUP takto:
= VLOOKUP (A1: 10, „pes“, 2, NEPRAVDA)
dát hodnotu 30.
V tomto seznamu však vidíme, že se pes vyskytuje 3krát. Standardní funkce VLOOKUP vrátí pouze hodnotu přidruženou k první položce v tomto seznamu. Nevrátí 125 nebo 9250 s 2. nebo 3. instancí „psa“ v tomto seznamu.
Vlookup Více výsledků
Následující funkce nám umožňuje zadat rozsah, výraz, který se má hledat, a instanci (číslo výsledku) a poté vrátit odpovídající hodnotu:
Funkce 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_ Pak Find_nth_Occurrence = Cell.Offset (0, 1). Hodnota End If End If Next Cell End Funkce
Hlavní rozdíl mezi touto a standardní funkcí VLOOKUP spočívá v tom, že v tomto případě je rozsah jediným rozsahem štítků - nikoli celým rozsahem dat.
Následuje podprogram, který volá tuto funkci na základě události kliknutí z příkazového tlačítka. Vypadá to v rozsahu A1: A8 na listu 2, pro 3. instanci slova Pes:
Private Sub CommandButton1_Click () Dim Answer as Double Answer = Find_nth_Occurrence (Sheets ("Sheet2"). Range ("A1: A8"), "Dog", 3) MsgBox AnswerEnd Sub
Proměnná „Odpověď“ ukládá výsledek funkce - který se poté zobrazí v okně Msgbox na obrazovce:
> Pokud však slovo nelze v seznamu nalézt nebo se frekvence nevyskytuje, např. Neexistuje 5. instance slova „Pes“, vrátí se hodnota 1 000 000:-
Odpověď = Find_nth_Occurrence (Sheets (“Sheet2”). Range (“A1: A8”), “Dog”, 5)
Nebo
Odpověď = Find_nth_Occurrence (Sheets (“Sheet2”). Range (“A1: A8”), “Horse”, 2)