Vba: index match gebruiken met meerdere criteria


U kunt de volgende basissyntaxis gebruiken om een INDEX MATCH uit te voeren met meerdere criteria in VBA:

 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

Dit specifieke voorbeeld zoekt naar de waarde in cel F1 in het bereik A2:A10 en de waarde in cel F2 in het bereik B2:B10 en retourneert de overeenkomstige waarde in het bereik C2:C10 in cel F3 .

Het volgende voorbeeld laat zien hoe u deze syntaxis in de praktijk kunt gebruiken.

Voorbeeld: Voer een INDEX MATCH uit met meerdere criteria met behulp van VBA

Stel dat we de volgende dataset in Excel hebben met informatie over basketbalspelers:

Stel dat we de speler willen vinden die overeenkomt met de teamnaam in cel F1 en de positie in cel F2 en de naam in cel F3 willen retourneren.

We kunnen hiervoor de volgende macro maken:

 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

Wanneer we deze macro uitvoeren, ontvangen we de volgende uitvoer:

De macro zoekt naar ‚Spurs‘ in de kolom Team en ‚Aanvaller‘ in de kolom Positie en retourneert correct de naam ‚Eric‘ in cel F3 .

Als we de waarden in de cellen F1 en F2 wijzigen en de macro opnieuw uitvoeren, kan deze de spelersnaam vinden op basis van de nieuwe waarden.

Laten we bijvoorbeeld zeggen dat we de teamnaam wijzigen in „Mavs“ en de positie in „Centrum“ en de macro opnieuw uitvoeren:

De macro zoekt naar „Mavs“ in de kolom Team en „Centrum“ in de kolom Positie en retourneert correct de naam „Chad“ in cel F3 .

Aanvullende bronnen

In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende taken in VBA kunt uitvoeren:

VBA: indexmatching gebruiken
VBA: hoe controleer je of een string een andere string bevat?
VBA: het aantal rijen binnen bereik tellen

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert