Vlookup - Više rezultata s VBA - Primjeri VBA koda

Vlookup tekst

Standardna funkcija Vlookup može se koristiti za pronalaženje vrijednosti unutar tablice:

I mi bismo koristili VLOOKUP ovako:

= VLOOKUP (A1: 10, "Pas", 2, FALSE)

dati vrijednost 30.

Međutim, na ovom popisu vidimo da se pas pojavljuje 3 puta. Standardna funkcija VLOOKUP vratit će samo vrijednost povezanu s prvom stavkom na ovom popisu. Neće vratiti 125 ili 9.250 s drugom ili trećom instancom "psa" na ovom popisu.

Vlookup više rezultata

Sljedeća nam funkcija omogućuje da odredimo raspon, izraz za traženje i instancu (broj rezultata), a zatim vratimo odgovarajuću vrijednost:

Funkcija Find_nth_Occurrence (Column_Range As Range, Expression As String, Occ As Integer) Kao Double Dim Cell Dim Dim Occurrences_to_date As Integer Find_nth_Occurrence = 1000000 Occurrences_to_date = 0 Za svaku ćeliju u stupcu_Range Ako je Cell.Contec_Concute_Corct_Contec_Convent_Contec_Convent_Contec_Contect_Contect_Contec_Corct_dato_Contec_Corct_dato_Contec_oglas_Od tada_Cornica_Odstupiti Zatim Find_nth_Occurrence = Cell.Offset (0, 1) .Vrijednost End If End Ako funkcija Next Cell End

Glavna razlika između ove i standardne funkcije VLOOKUP je u tome što je u ovom slučaju raspon jedini raspon oznaka, a ne cijeli raspon podataka.
Slijedi potprogram koji poziva ovu funkciju na temelju događaja klika s naredbenog gumba. Izgleda u rasponu A1: A8 na Sheet2, za treću instancu riječi Pas:

Privatna podredba CommandButton1_Click () Zatamni odgovor kao dvostruki odgovor = Find_nth_Occurrence (Sheets ("Sheet2"). Range ("A1: A8"), "Dog", 3) MsgBox AnswerEnd Sub

Varijabla "Odgovor" pohranjuje rezultat funkcije - koji se zatim prikazuje u okviru za poruke na zaslonu:

> Međutim, ako se riječ ne može pronaći na popisu ili se ne pojavljuje učestalost, npr. Nema pete instance riječi "pas", tada se vraća vrijednost od 1.000.000:-
Odgovor = Find_nth_Occurrence (Tablice ("List2"). Raspon ("A1: A8"), "Pas", 5)
Ili
Odgovor = Pronađi_mjesec_pojava (Tablice ("List 2"). Raspon ("A1: A8"), "Konj", 2)

wave wave wave wave wave