![](https://cdn.wiki-base.com/4429227/excel_formula_approximate_match_with_multiple_criteria__2.png.webp)
Podsumowanie
Aby wyszukać i przybliżyć dopasowanie na podstawie więcej niż jednego kryterium, możesz użyć formuły tablicowej opartej na INDEKS i PODAJ.POZYCJĘ z pomocą funkcji JEŻELI. W przedstawionym przykładzie formuła w G8 to:
(=INDEX(D5:D10,MATCH(G7,IF(B5:B10=G6,C5:C10),1)))
Celem tego wzoru jest zwrócenie „rozmiaru” dla zwierzęcia i wagi.
Uwaga: jest to formuła tablicowa i należy ją wprowadzić za pomocą kombinacji Control + Shift + Enter
Wyjaśnienie
Zasadniczo jest to tylko formuła INDEKS / PODAJ. Problem w tym przypadku polega na tym, że musimy „odfiltrować” zbędne wpisy w tabeli, więc pozostają nam tylko wpisy odpowiadające szukanemu zwierzęciu.
Odbywa się to za pomocą prostej funkcji JEŻELI:
IF(B5:B10=G6,C5:C10)
Ten fragment kodu testuje wartości w B5: B10, aby sprawdzić, czy pasują do wartości w G6 (zwierzę). W przypadku dopasowania zwracane są odpowiednie wartości w C5: C11. W przypadku braku dopasowania zwracany jest FALSE. Gdy G6 zawiera słowo „cat”, wynikowa tablica wygląda następująco:
(FALSE; FALSE; FALSE; 5; 10; 15)
To trafia do funkcji MATCH jako tablica. Wartość wyszukiwania dla dopasowania pochodzi z G7, który zawiera wagę (w przykładzie 9 funtów).
Zauważ, że dopasowanie jest skonfigurowane pod kątem przybliżonego dopasowania, ustawiając match_type na 1, a to wymaga posortowania wartości w C5: C11.
PODAJ.POZYCJĘ zwraca pozycję wagi w tablicy i jest ona przekazywana do funkcji INDEKS jako numer wiersza. Lookup_array dla INDEKSU to rozmiary w D5: D10, więc INDEKS zwraca rozmiar odpowiadający pozycji wygenerowanej przez PODAJ.POZYCJĘ (liczba 4 w pokazanym przykładzie).