Vba: jak używać dopasowania indeksu z wieloma kryteriami
Aby wykonać DOPASOWANIE INDEKSU z wieloma kryteriami w VBA, możesz użyć następującej podstawowej składni:
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
Ten konkretny przykład szuka wartości w komórce F1 w zakresie A2:A10 i wartości w komórce F2 w zakresie B2:B10 i zwraca odpowiednią wartość w zakresie C2:C10 w komórce F3 .
Poniższy przykład pokazuje, jak zastosować tę składnię w praktyce.
Przykład: Wykonaj DOPASOWANIE INDEKSU z wieloma kryteriami przy użyciu języka VBA
Załóżmy, że mamy w Excelu następujący zbiór danych zawierający informacje o koszykarzach:
Załóżmy, że chcemy znaleźć gracza, który pasuje do nazwy drużyny w komórce F1 i pozycji w komórce F2 i zwrócić tę nazwę w komórce F3 .
W tym celu możemy utworzyć następujące makro:
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
Kiedy uruchomimy to makro, otrzymamy następujące dane wyjściowe:
Makro wyszukuje „Spurs” w kolumnie Zespół i „Napastnik” w kolumnie Pozycja i poprawnie zwraca nazwę „Eric” w komórce F3 .
Jeśli zmienimy wartości w komórkach F1 i F2 i uruchomimy makro ponownie, będzie ono mogło znaleźć nazwę gracza na podstawie nowych wartości.
Załóżmy na przykład, że zmieniamy nazwę zespołu na „Mavs”, a pozycję na „Centrum” i ponownie uruchamiamy makro:
Makro wyszukuje „Mavs” w kolumnie Zespół i „Centrum” w kolumnie Pozycja i poprawnie zwraca nazwę „Chad” w komórce F3 .
Dodatkowe zasoby
Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania w VBA:
VBA: Jak korzystać z dopasowywania indeksów
VBA: jak sprawdzić, czy ciąg zawiera inny ciąg
VBA: Jak policzyć liczbę wierszy w zakresie