Text Vlookup
Funcția standard Vlookup poate fi utilizată pentru a găsi o valoare într-un tabel:
Și am folosi VLOOKUP așa:
= VLOOKUP (A1: 10, „Câine”, 2, FALS)
pentru a da valoarea 30.
Cu toate acestea, în această listă vedem că câinele apare de 3 ori. Funcția standard VLOOKUP va returna doar valoarea asociată cu primul element din această listă. Nu va returna 125 sau 9.250 cu a doua sau a treia instanță de „câine” din această listă.
Vlookup Rezultate multiple
Următoarea funcție ne permite să specificăm un interval, o expresie de căutat și instanța (numărul rezultatului) și apoi să returnăm valoarea corespunzătoare:
Funcție Find_nth_Occurrence (Column_Range as Range, Expression as String, Occ As Integer) As Double Dim Dim Cell Occurrences_to_date As Integer Find_nth_Occurrence = 1000000 Occurrences_to_date = 0 For Each Cell In Column_Range If Cell.Value = Expression Then_Occurrence_to_d Apoi Find_nth_Occurrence = Cell.Offset (0, 1) .Value End if End If Next Cell End Function
Principala diferență dintre această funcție și funcția VLOOKUP standard este că, în acest caz, gama este singura gamă de etichete - nu întreaga gamă de date.
Următorul este un subrutină care apelează această funcție pe baza evenimentului de clic dintr-un buton de comandă. Arată în intervalul A1: A8 pe Sheet2, pentru a treia instanță a cuvântului câine:
Private Sub CommandButton1_Click () Dim Răspuns ca răspuns dublu = Find_nth_Occurrence (Foi ("Sheet2"). Range ("A1: A8"), "Dog", 3) MsgBox AnswerEnd Sub
Variabila „Răspuns” stochează rezultatul funcției - care este apoi afișat într-un Mesaj pe ecran:
> Cu toate acestea, dacă cuvântul nu poate fi găsit în listă sau frecvența nu apare, de exemplu, nu există o a 5-a instanță a cuvântului „Câine”, atunci se returnează valoarea 1.000.000: -
Răspuns = Find_nth_Occurrence (Foi („Sheet2”). Range („A1: A8”), „Dog”, 5)
Sau
Răspuns = Find_nth_Occurrence (Foi („Sheet2”). Range („A1: A8”), „Horse”, 2)