Vba: so verwenden sie index match mit mehreren kriterien
Sie können die folgende grundlegende Syntax verwenden, um einen INDEX MATCH mit mehreren Kriterien in VBA durchzuführen:
SubIndexMatchMultiple ()
Range(" F3 ").Value = WorksheetFunction.Index(Range(" C2:C10 "), _
WorksheetFunction.Match(Range(" F1 "), Range(" A2:A10 "), 0) + _
WorksheetFunction.Match(Range(" F2 "), Range(" B2:B10 "), 0) - 1)
End Sub
In diesem speziellen Beispiel wird nach dem Wert in Zelle F1 im Bereich A2:A10 und dem Wert in Zelle F2 im Bereich B2:B10 gesucht und der entsprechende Wert im Bereich C2:C10 in Zelle F3 zurückgegeben.
Das folgende Beispiel zeigt, wie diese Syntax in der Praxis verwendet wird.
Beispiel: Führen Sie mit VBA einen INDEX-MATCH mit mehreren Kriterien durch
Angenommen, wir haben den folgenden Datensatz in Excel, der Informationen über Basketballspieler enthält:
Angenommen, wir möchten den Spieler finden, der dem Teamnamen in Zelle F1 und der Position in Zelle F2 entspricht, und den Namen in Zelle F3 zurückgeben.
Dazu können wir das folgende Makro erstellen:
SubIndexMatchMultiple ()
Range(" F3 ").Value = WorksheetFunction.Index(Range(" C2:C10 "), _
WorksheetFunction.Match(Range(" F1 "), Range(" A2:A10 "), 0) + _
WorksheetFunction.Match(Range(" F2 "), Range(" B2:B10 "), 0) - 1)
End Sub
Wenn wir dieses Makro ausführen, erhalten wir die folgende Ausgabe:
Das Makro sucht nach „Spurs“ in der Spalte „Team“ und „Forward“ in der Spalte „Position“ und gibt korrekt den Namen „Eric“ in Zelle F3 zurück.
Wenn wir die Werte in den Zellen F1 und F2 ändern und das Makro erneut ausführen, kann es den Spielernamen anhand der neuen Werte finden.
Nehmen wir zum Beispiel an, wir ändern den Teamnamen in „Mavs“ und die Position in „Center“ und führen das Makro erneut aus:
Das Makro sucht nach „Mavs“ in der Spalte „Team“ und „Center“ in der Spalte „Position“ und gibt korrekt den Namen „Chad“ in Zelle F3 zurück.
Zusätzliche Ressourcen
In den folgenden Tutorials wird erläutert, wie Sie andere häufige Aufgaben in VBA ausführen:
VBA: So verwenden Sie den Indexabgleich
VBA: So überprüfen Sie, ob eine Zeichenfolge eine andere Zeichenfolge enthält
VBA: So zählen Sie die Anzahl der Zeilen im Bereich