Wyszukiwanie według wielu kryteriów za pomocą INDEX-MATCH
Dopasowywanie jednocześnie do kilku kolumn w celu wskazania wiersza
Wyszukiwanie według wielu kryteriów za pomocą INDEX-MATCH to bezpłatna lekcja Excel Formulas Academy na CoddyKit. To lekcja 3 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Excel Formulas Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Excel Formulas Academy zawiera 4 lekcji w sumie.
Gdy jeden klucz nie wystarcza
Czasami jedna kolumna nie identyfikuje jednoznacznie wiersza. Możesz potrzebować ceny produktu w konkretnym rozmiarze albo wynagrodzenia pracownika w określonym dziale.
W takiej sytuacji potrzebne jest wyszukiwanie wielokryterialne: dopasowanie jednocześnie do dwóch lub większej liczby kolumn, aby wskazać dokładnie jeden wiersz.
INDEX-MATCH elegancko rozwiązuje ten problem, łącząc warunki w jeden test dopasowania, bez konieczności dodawania kolumn pomocniczych.
Podejście z kolumną pomocniczą
Najprostszy sposób myślenia polega na połączeniu kolumn z kluczami w jedną kolumnę. Dodaj kolumnę pomocniczą, która sklei produkt i rozmiar, a następnie wykonaj zwykłe wyszukiwanie w tej kolumnie.
Przykładowa komórka pomocnicza może zawierać =A2&"|"&B2, tworząc wartość "Shirt|Large". Następnie użyj MATCH, aby wyszukać "Shirt|Large" w połączonej kolumnie.
To działa, ale zaśmieca arkusz. W kolejnych scenach pokazano, jak całkowicie pominąć kolumnę pomocniczą.
=A2 & "|" & B2Dopasowanie dwóch warunków jednocześnie
Najważniejszy trik polega na pomnożeniu dwóch testów warunków wewnątrz MATCH.
(A2:A10=G1) tworzy tablicę wartości TRUE/FALSE dla pierwszego kryterium. (B2:B10=G2) robi to samo dla drugiego. Ich pomnożenie, (A2:A10=G1)*(B2:B10=G2), daje 1 tylko tam, gdzie oba warunki mają wartość TRUE, a w pozostałych miejscach 0.
Funkcja MATCH wyszukuje następnie wartość 1, aby znaleźć wiersz spełniający oba warunki.
=(A2:A10=G1) * (B2:B10=G2)Dlaczego mnożenie oznacza AND
W arkuszach kalkulacyjnych TRUE zachowuje się jak 1, a FALSE jak 0. Mnożenie tych wartości naśladuje logiczne AND:
- 1 razy 1 = 1 (oba warunki spełnione)
- 1 razy 0 = 0
- 0 razy 1 = 0
- 0 razy 0 = 0
Wynik 1 powstaje więc tylko w wierszach, w których spełnione są oba kryteria. Każdy pozostały wiersz otrzymuje 0. Ta pojedyncza jedynka wskazuje szukany wiersz.
Znajdowanie wiersza za pomocą MATCH
Teraz umieść pomnożoną tablicę wewnątrz MATCH i wyszukaj dokładną wartość 1.
MATCH(1, (A2:A10=G1)*(B2:B10=G2), 0) zwraca pozycję pierwszego wiersza, w którym oba warunki mają wartość TRUE.
Jeśli pasująca kombinacja znajduje się w czwartym wierszu danych, MATCH zwróci 4. To właśnie tej pozycji INDEX potrzebuje, aby pobrać wynik.
=MATCH(1, (A2:A10=G1)*(B2:B10=G2), 0)Zwracanie wartości za pomocą INDEX
Przekaż wynik MATCH do funkcji INDEX działającej na kolumnie, z której chcesz pobrać wartość, na przykład na cenie w zakresie C2:C10.
Pełna formuła oznacza: z zakresu C2:C10 zwróć wartość z wiersza, w którym produkt jest równy G1 i rozmiar jest równy G2.
To prawdziwe wyszukiwanie wielokryterialne, bez kolumny pomocniczej i bez zmiany układu danych.
=INDEX(C2:C10, MATCH(1, (A2:A10=G1)*(B2:B10=G2), 0))Prawidłowe wprowadzanie formuły
Ta formuła operuje na tablicach warunków. W nowoczesnym Excelu i Google Sheets wystarczy nacisnąć Enter, aby zadziałała.
W starszym Excelu (przed wprowadzeniem tablic dynamicznych) należy zatwierdzić ją jako formułę tablicową za pomocą Ctrl+Shift+Enter, co doda nawiasy klamrowe. Jeśli w starszej wersji Excela wynik jest nieprawidłowy lub pojawia się błąd, zwykle brakuje właśnie tego kroku.
=INDEX(C2:C10, MATCH(1, (A2:A10=G1)*(B2:B10=G2), 0))Dodawanie trzeciego warunku
Potrzebujesz trzech kryteriów? Po prostu pomnóż przez kolejny test. Załóżmy, że chcesz również dopasować kolor w kolumnie D do wartości wejściowej G3.
Każdy dodatkowy czynnik (range=criterion) jeszcze bardziej zawęża wynik. Tylko wiersze, w których wszystkie warunki mają wartość TRUE, zachowują iloczyn równy 1; dowolna wartość FALSE zmienia cały iloczyn na 0.
Ten wzorzec można rozszerzać o dowolną liczbę potrzebnych kolumn.
=INDEX(C2:C10, MATCH(1, (A2:A10=G1)*(B2:B10=G2)*(D2:D10=G3), 0))Przykład krok po kroku
Dane: A = produkt, B = rozmiar, C = cena. Chcesz znaleźć cenę produktu "Shirt" w rozmiarze "Large".
- G1 = "Shirt", G2 = "Large".
- Tablice warunków zwracają 1 tylko w wierszu Shirt+Large, na przykład w wierszu 4.
- MATCH(1, ..., 0) zwraca 4.
- INDEX(C2:C10, 4) zwraca cenę z tego wiersza.
Zmień dowolną wartość wejściową, a formuła natychmiast ponownie znajdzie właściwy wiersz.
=INDEX(C2:C10, MATCH(1, (A2:A10=G1)*(B2:B10=G2), 0))Pułapki i bezpieczeństwo
Pamiętaj o następujących kwestiach:
- Równe zakresy: każdy zakres warunku i kolumna INDEX muszą mieć taką samą wysokość.
- Brak dopasowania: jeśli żaden wiersz nie spełnia wszystkich kryteriów, MATCH zwróci #N/A. Owiń całość w
IFERROR. - Duplikaty: jeśli pasuje więcej niż jeden wiersz, MATCH zwróci tylko pierwszy. Kryteria powinny być na tyle szczegółowe, aby wskazywały unikatowy wiersz.
=IFERROR(INDEX(C2:C10, MATCH(1, (A2:A10=G1)*(B2:B10=G2), 0)), "No match")SUMPRODUCT jako alternatywa
Jeśli pasować może wiele wierszy i zamiast pobierać jedną wartość woli Pan/Pani zsumować ich wartości, SUMPRODUCT jest przejrzystą alternatywą dla wprowadzanego tablicowo INDEX-MATCH.
Funkcja mnoży tablice warunków przez kolumnę wartości i dodaje wyniki, więc udział w sumie mają tylko wiersze spełniające oba kryteria. Nie trzeba używać Ctrl+Shift+Enter, ponieważ SUMPRODUCT natywnie obsługuje tablice.
Proszę używać INDEX-MATCH do pobierania jednej pasującej wartości, a SUMPRODUCT do agregowania wszystkich dopasowań.
=SUMPRODUCT((A2:A10=G1) * (B2:B10=G2) * C2:C10)Szybki test
Sprawdź swoją wiedzę na temat wyszukiwania według wielu kryteriów.
Podsumowanie lekcji
W przypadku wyszukiwania według wielu kryteriów za pomocą INDEX-MATCH:
- Proszę pomnożyć tablice warunków:
(A=G1)*(B=G2)daje 1 tylko tam, gdzie wszystkie warunki są spełnione (logiczne AND). MATCH(1, ..., 0)znajduje pozycję tego wiersza.INDEX(returnCol, position)zwraca wartość.
W przypadku dodatkowych warunków proszę dodać kolejne czynniki *(range=criterion), zachować równą wysokość zakresów, zatwierdzić formułę za pomocą Ctrl+Shift+Enter w starszych wersjach programu Excel oraz zabezpieczyć ją funkcją IFERROR.
=INDEX(C2:C10, MATCH(1, (A2:A10=G1)*(B2:B10=G2), 0))Często zadawane pytania
Czy lekcja „Wyszukiwanie według wielu kryteriów za pomocą INDEX-MATCH” jest bezpłatna?
Tak — pełny tekst „Wyszukiwanie według wielu kryteriów za pomocą INDEX-MATCH” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Excel Formulas Academy, przejdź na CoddyKit PRO. Kurs Excel Formulas Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Wyszukiwanie według wielu kryteriów za pomocą INDEX-MATCH”?
Dopasowywanie jednocześnie do kilku kolumn w celu wskazania wiersza Ćwiczysz Excel Formulas Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Excel Formulas Academy?
Nie wymagamy żadnego doświadczenia. Excel Formulas Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 3 z 4.
Ile czasu zajmuje lekcja „Wyszukiwanie według wielu kryteriów za pomocą INDEX-MATCH”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Excel Formulas Academy?
Tak. Każda lekcja Excel Formulas Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Wyszukiwanie dwukierunkowe za pomocą INDEX-MATCH-MATCH
- Wyszukiwanie ostatniej pasującej wartości
- Wyszukiwanie według wielu kryteriów za pomocą INDEX-MATCH
- Dopasowanie przybliżone w tabelach progowych