TOP

Verbesserte Funktion VLOOKUP (VLOOKUP2)

Beschreibung

Die integrierte Funktion VLOOKUP ist eine der leistungsstärksten Funktionen in Excel. Es hat jedoch einen wesentlichen Nachteil: Es findet nur das erste Vorkommen des gewünschten Werts in der Tabelle und nur in der Spalte ganz rechts. Aber wenn Sie den 2., 3. und nicht den letzten brauchen?


Ein Beispiel für ein Problem

Nehmen wir an, wir haben eine Tabelle mit bearbeiteten Krediten wie diese:

Wir müssen zum Beispiel wissen, wie hoch der Betrag des dritten Kredits war, der Mike gewährt wurde, oder wann John seinen zweiten Vertrag ausführte. Integrierte Funktion VLOOKUP weiß, wie man nur das erste Vorkommen eines Namens in der Tabelle durchsucht und wird uns nicht weiterhelfen.

Schreiben wir unsere Funktion, die nicht nur den ersten, sondern auch jeden nachfolgenden (N-ten) Eintrag durchsucht. Nennen wir es zum Beispiel VLOOKUP2.

VBA Code für Funktion VLOOKUP2

Öffnen Sie das Menü Dienst – Makro – Editor Visual Basic , Setzen Sie das neue Modul ein (Menü Insert - Module) und kopieren Sie den Text dieser Funktion dorthin:

Function VLOOKUP2(Table           As Range, _
                  SearchColumnNum As Integer, _
                  SearchValue     As Variant, _
                  N               As Integer, _
                  ResultColumnNum As Integer)        
  Dim i      As Integer
  Dim iCount As Integer
       
  For i = 1 To Table.Rows.Count
    If Table.Cells(i, SearchColumnNum) = SearchValue Then
      iCount = iCount + 1
    End If
    If iCount = N Then
      VLOOKUP2 = Table.Cells(i, ResultColumnNum)
      Exit For
    End If
  Next i
End Function 

Schließen Sie den Editor Visual Basic und kehren Sie zu Excel zurück.

Jetzt können Sie im Funktionsassistenten in der Kategorie „Benutzerdefiniert“ unsere Funktion VLOOKUP2 finden und verwenden. Die Syntax der Funktion ist wie folgt:

=VLOOKUP2(Tisch ; Column_number_where_we_search ; gesuchter_Wert; Eintrittsnummer ; Column_number_from_which_we_take_the_value )

Das heißt, um den Betrag des dritten an Mike vergebenen Darlehens zu ermitteln, müssen Sie Folgendes eingeben:

=VLOOKUP2(A2:A19 ; 1 ; "Mike"; 3 ; 4 )

Artikel zum Thema: