Vlookup -text
Standard Vlookup -funktionen kan användas för att hitta ett värde i en tabell:
Och vi skulle använda VLOOKUP så här:
= VISNING (A1: 10, "Hund", 2, FALSKT)
för att ge värdet 30.
Men i den här listan ser vi att Dog förekommer 3 gånger. Standard VLOOKUP -funktionen returnerar endast värdet som är associerat med det första objektet i den här listan. Det returnerar inte 125 eller 9 250 med den andra eller tredje instansen av "hund" i den här listan.
Vlookup flera resultat
Följande funktion gör att vi kan ange ett intervall, ett uttryck som ska sökas efter och förekomsten (resultatnummer) och sedan returnera motsvarande värde:
Funktion 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 = Exprenate Occurce_Current_Ocean_Ocean_Ocean_Ocean_Ocean_Ocean_Ocean_Current_Occence Sedan Find_nth_Occurrence = Cell.Offset (0, 1) .Value End If End If Next Cell End Function
Huvudskillnaden mellan detta och standard VLOOKUP -funktionen är att intervallet i detta fall är det enda området med etiketter - inte hela dataområdet.
Följande är en delprogram som kallar den här funktionen baserat på klickhändelsen från en kommandoknapp. Det ser ut i intervallet A1: A8 på Sheet2, för den tredje instansen av ordet Dog:
Private Sub CommandButton1_Click () Dim Answer As Double Answer = Find_nth_Occurrence (Sheets ("Sheet2"). Range ("A1: A8"), "Dog", 3) MsgBox AnswerEnd Sub
Variabeln "Svar" lagrar resultatet av funktionen - som sedan visas i en Msgbox på skärmen:
> Men om ordet inte finns i listan eller om frekvensen inte förekommer, till exempel att det inte finns en femte instans av ordet "hund", returneras värdet 1.000.000:-
Svar = Find_nth_Occurrence (Sheets ("Sheet2"). Range ("A1: A8"), "Dog", 5)
Eller
Svar = Find_nth_Occurrence (Sheets ("Sheet2"). Range ("A1: A8"), "Horse", 2)