VBA Index Match - Verwendung der Indexabgleichfunktion in VBA (Beispiele)

Inhaltsverzeichnis

Indexübereinstimmung in VBA

Die INDEX & MATCH-Funktion in der VBA-Kombination ist die Alternative zur VLOOKUP-Funktion in Excel. In VBA haben wir nicht den Luxus, die INDEX & MATCH-Funktion direkt zu verwenden, da diese beiden Funktionen nicht Teil der in VBA integrierten Funktionen sind. Wir können sie jedoch weiterhin als Teil der Arbeitsblattfunktionsklasse verwenden.

Wie verwende ich Index Match in VBA? (Schritt für Schritt)

Schauen Sie sich zum Beispiel die folgenden Daten an.

In den obigen Daten ist der Suchwert der Abteilungsname, und basierend auf diesem Abteilungsnamen müssen wir den Gehaltsbetrag extrahieren.

Das Problem hierbei ist jedoch, dass die Ergebnisspalte in der ersten vorhanden ist und die Suchwertspalte danach die Ergebnisspalte ist. In diesem Fall kann VLOOKUP den Gehaltsbetrag nicht abrufen, da VLOOKUP nur von rechts nach links und nicht von links nach rechts funktioniert.

In diesen Fällen müssen wir die Kombinationsformel der Funktion VBA INDEX & MATCH verwenden. Lassen Sie uns die Aufgabe ausführen, den Gehaltsbetrag jeder Abteilung im VBA-Code zu ermitteln.

Schritt 1: Starten Sie die Sonnenroutine.

Schritt 2: Deklarieren Sie die Variable VBA Integer.

Code:

Sub INDEX_MATCH_Example1 () Dim k As Integer End Sub

Schritt 3: Öffnen Sie nun For Next Loop in VBA.

Code:

Sub INDEX_MATCH_Example1 () Dim k As Integer Für k = 2 bis 5 Next k End Sub

Schritt 4: Führen Sie in der VBA-Schleife die Formel aus. In der 5 - ten Spalte, müssen wir die Formel anzuwenden, so dass der Code CELLS (k, 5) .Value =

Code:

Sub INDEX_MATCH_Example1 () Dim k As Integer Für k = 2 bis 5 Zellen (k, 5) .Value = Next k End Sub

Schritt 5: In dieser Zelle müssen wir die VBA INDEX & MATCH-Formel anwenden. Wie bereits erwähnt, müssen diese Funktionen als Arbeitsblattfunktion in der VBA-Klasse verwendet werden. Öffnen Sie daher die Arbeitsblattfunktionsklasse.

Code:

Sub INDEX_MATCH_Example1 () Dim k As Integer Für k = 2 bis 5 Zellen (k, 5) .Value = WorksheetFunction. Weiter k End Sub

Schritt 6: Nach Eingabe der Arbeitsblattfunktionsklasse werden alle verfügbaren Arbeitsblattfunktionen angezeigt. Wählen Sie daher die INDEX-Funktion aus.

Code:

Sub INDEX_MATCH_Example1 () Dim k As Integer Für k = 2 bis 5 Zellen (k, 5) .Value = WorksheetFunction.Index (Next k End Sub

Schritt 7: Während Sie die Arbeitsblattfunktion in VBA verwenden, müssen Sie sich der Argumente der Formel absolut sicher sein. Das erste Argument ist Array, dh aus welcher Spalte wir das Ergebnis benötigen. In diesem Fall benötigen wir das Ergebnis von A2 bis A5.

Code:

Sub INDEX_MATCH_Example1 () Dim k As Integer Für k = 2 bis 5 Zellen (k, 5) .Value = WorksheetFunction.Index (Bereich ("A2: A5"), Next k End Sub

Schritt 8: Als nächstes sehen Sie, von welcher Zeilennummer wir das Ergebnis benötigen. Wie wir im vorherigen Beispiel gesehen haben, können wir die Zeilennummer nicht jedes Mal manuell eingeben. Verwenden Sie also die MATCH-Funktion.

Um die MATCH-Funktion wieder verwenden zu können, müssen Sie die Worksheet Function-Klasse öffnen.

Code:

Sub INDEX_MATCH_Example1 () Dim k As Integer Für k = 2 bis 5 Zellen (k, 5) .Value = WorksheetFunction.Index (Bereich ("A2: A5"), WorksheetFunction.Match (Next k End Sub

Schritt 9: Das erste Argument für MATCH-Funktionen ist der LOOKUP-Wert. Hier ist unser Suchwert Abteilungsnamen. es ist dort in den Zellen (2, 4).

Da sich die Zeilennummer jedes Mal ändern muss, können wir anstelle der manuellen Zeilennummer 2 die Variable „k“ angeben. Zellen (k, 4) .Wert

Code:

Sub INDEX_MATCH_Example1 () Dim k As Integer Für k = 2 bis 5 Zellen (k, 5) .Value = WorksheetFunction.Index (Bereich ("A2: A5"), WorksheetFunction.Match (Zellen (k, 5) .Value, Next k End Sub

Schritt 10: Als nächstes müssen wir den Abteilungswertbereich, dh den Bereich („B2: B5“), erwähnen.

Code:

Sub INDEX_MATCH_Example1 () Dim k As Integer Für k = 2 bis 5 Zellen (k, 5) .Value = WorksheetFunction.Index (Bereich ("A2: A5"), WorksheetFunction.Match (Zellen (k, 5) .Value, Range ("B2: B5"),

Weiter k

End Sub

Schritt 11: Setzen Sie als nächstes das Argument auf 0, da wir eine genaue Übereinstimmung benötigen, und schließen Sie die Klammern.

Code:

Sub INDEX_MATCH_Example1 () Dim k As Integer Für k = 2 bis 5 Zellen (k, 5) .Value = WorksheetFunction.Index (Bereich ("A2: A5"), WorksheetFunction.Match (Zellen (k, 4) .Value, Range ("B2: B5"), 0))

Weiter k

End Sub

Ok, wir sind mit dem Codierungsteil fertig. Lassen Sie uns den Code ausführen, um das Ergebnis in Spalte 5 zu erhalten.

Also haben wir das Ergebnis bekommen.

Wir können diese Formel als Alternative zur VLOOKUP-Funktion verwenden.

Interessante Beiträge...