Łączenie INDEX i MATCH
Proszę użyć MATCH do przekazania pozycji do INDEX i utworzenia dynamicznego wyszukiwania.
Łączenie INDEX i 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.
Idealne połączenie
Znają już Państwo dwie części wyszukiwania. Funkcja MATCH znajduje, gdzie znajduje się wartość, a funkcja INDEX zwraca wartość z określonej pozycji.
Po połączeniu otrzymujemy kompletne wyszukiwanie: MATCH wskazuje wiersz, a następnie INDEX pobiera dane z tego wiersza i wybranej kolumny.
Gdy zobaczą Państwo ten schemat, okaże się on prosty: należy umieścić funkcję MATCH wewnątrz funkcji INDEX, w miejscu, w którym zwykle podaje się numer wiersza.
Podstawowy schemat
Oto postać, której będą Państwo używać wielokrotnie:
=INDEX(return_range, MATCH(lookup_value, lookup_range, 0))
Należy czytać ją od środka. Najpierw wykonuje się MATCH i zwraca numer pozycji. Następnie ta liczba staje się wartością row_num dla funkcji INDEX, która zwraca wartość z zakresu zwracanych danych.
Zakres zwracanych danych i zakres wyszukiwania zwykle mają taką samą liczbę wierszy, dzięki czemu pozycja w jednym z nich odpowiada pozycji w drugim.
=INDEX(C2:C20, MATCH("Cherry", A2:A20, 0))Przykład krok po kroku
Wyobraźmy sobie tabelę, w której kolumna A zawiera nazwy produktów, a kolumna C ceny. Chcą Państwo znaleźć cenę produktu „Cherry”.
Najpierw funkcja MATCH znajduje Cherry: =MATCH("Cherry", A2:A20, 0) zwraca na przykład 3.
Następnie funkcja INDEX używa tej wartości 3: =INDEX(C2:C20, 3) zwraca cenę z 3. wiersza kolumny C.
Po zagnieżdżeniu obu funkcji otrzymujemy wynik za jednym razem: =INDEX(C2:C20, MATCH("Cherry", A2:A20, 0)).
=INDEX(C2:C20, MATCH("Cherry", A2:A20, 0))Używanie komórki jako wartości wyszukiwanej
Wpisanie na stałe wartości „Cherry” jest odpowiednie podczas nauki, ale w rzeczywistych formułach odwołuje się zamiast tego do komórki. Należy umieścić wyszukiwany tekst w komórce E1 i użyć do niej odwołania.
=INDEX(C2:C20, MATCH(E1, A2:A20, 0))
Teraz dowolny produkt wpisany do komórki E1 natychmiast zwróci jego cenę. Po wpisaniu Banana otrzymają Państwo cenę produktu Banana, a po wpisaniu Date wynik zostanie zaktualizowany.
Jedna formuła staje się wielokrotnie używanym narzędziem wyszukiwania, sterowanym wyłącznie przez komórkę wejściową.
=INDEX(C2:C20, MATCH(E1, A2:A20, 0))Wyszukiwanie w lewo
Oto trik, który wyróżnia INDEX-MATCH. Kolumna wyszukiwania i kolumna zwracana są niezależne, więc zwracana wartość może znajdować się na lewo od wyszukiwanej wartości.
Załóżmy, że ceny znajdują się w kolumnie A, a nazwy produktów w kolumnie C. Aby znaleźć cenę produktu na podstawie jego nazwy, należy użyć formuły =INDEX(A2:A20, MATCH(E1, C2:C20, 0)).
Wyszukiwanie odbywa się w kolumnie C, ale wartość jest zwracana z kolumny A. Funkcja VLOOKUP nie potrafi tego zrobić bez dodatkowych zabiegów.
=INDEX(A2:A20, MATCH(E1, C2:C20, 0))Zwracanie innego pola
Zakres zwracanych wartości decyduje o tym, co zostanie zwrócone. Wyszukując za pomocą tego samego klucza, można pobrać dowolną kolumnę, zmieniając tylko zakres funkcji INDEX.
Aby znaleźć adres e-mail klienta: =INDEX(D2:D50, MATCH(E1, A2:A50, 0)).
Aby zamiast tego znaleźć miasto tego samego klienta: =INDEX(F2:F50, MATCH(E1, A2:A50, 0)).
Część MATCH pozostaje identyczna; zmienia się tylko zakres funkcji INDEX, aby wybrać inną wartość.
=INDEX(F2:F50, MATCH(E1, A2:A50, 0))Wprowadzenie do wyszukiwania dwukierunkowego
Można również podać numer kolumny funkcji INDEX, znajdując go za pomocą drugiej funkcji MATCH. Pozwala to wskazać wartość na przecięciu wiersza i kolumny.
=INDEX(B2:E10, MATCH(G1, A2:A10, 0), MATCH(G2, B1:E1, 0))
Pierwsza funkcja MATCH znajduje wiersz na podstawie etykiet w kolumnie A, a druga znajduje kolumnę na podstawie nagłówków w wierszu 1. Funkcja INDEX zwraca komórkę znajdującą się na ich przecięciu. Ten zaawansowany wzorzec zostanie dokładnie omówiony w dalszej części.
=INDEX(B2:E10, MATCH(G1, A2:A10, 0), MATCH(G2, B1:E1, 0))Zachowywanie zgodności zakresów
Aby pozycje się zgadzały, zakres wyszukiwania i zakres zwracanych wartości muszą zaczynać się w tym samym wierszu i mieć tę samą wysokość.
Jeśli funkcja MATCH przeszukuje zakres A2:A20 (19 wierszy), ale funkcja INDEX zwraca wartości z zakresu C2:C19 (18 wierszy), pozycje się rozjeżdżają i otrzymuje się nieprawidłową wartość.
Niezawodna praktyka to używanie dokładnie tego samego zakresu wierszy w obu przypadkach, na przykład A2:A20 i C2:C20. Odwołania do całych kolumn, takie jak A:A i C:C, również automatycznie zachowują zgodność.
=INDEX(C:C, MATCH(E1, A:A, 0))Obsługa braku dopasowania
Jeśli funkcja MATCH nie może znaleźć wyszukiwanej wartości, zwraca #N/A, a cała formuła INDEX-MATCH wyświetla ten błąd. Można ją opakować funkcją IFNA, aby uzyskać czytelny wynik zastępczy.
=IFNA(INDEX(C2:C20, MATCH(E1, A2:A20, 0)), "Not found")
Brakujący produkt wyświetli teraz tekst "Not found" zamiast niepokojącego błędu. Funkcja IFERROR również działa, ale IFNA obsługuje tylko przypadek braku dopasowania i pozwala wyświetlać pozostałe błędy.
=IFNA(INDEX(C2:C20, MATCH(E1, A2:A20, 0)), "Not found")Kompletna realistyczna formuła
Połączmy wszystkie elementy. Dostępna jest tabela pracowników: identyfikatory znajdują się w kolumnie A, nazwiska w B, działy w C, a wynagrodzenia w D. Użytkownik wpisuje identyfikator do komórki G1.
Aby zwrócić dział tego pracownika: =INDEX(C2:C200, MATCH(G1, A2:A200, 0)).
Aby zamiast tego zwrócić jego wynagrodzenie, należy zmienić zakres funkcji INDEX na D2:D200. Logika wyszukiwania się nie zmienia, zmienia się tylko kolumna, z której odczytywana jest wartość. To podstawowe narzędzie codziennej pracy z dynamicznym wyszukiwaniem.
=INDEX(D2:D200, MATCH(G1, A2:A200, 0))Dlaczego czytanie od środka pomaga
Gdy formuła wygląda onieśmielająco, należy analizować ją tak, jak robi to arkusz kalkulacyjny — od najbardziej wewnętrznej funkcji na zewnątrz.
W przypadku formuły =INDEX(C2:C20, MATCH(E1, A2:A20, 0)) najpierw należy odczytać MATCH(E1, A2:A20, 0), wyobrazić sobie, że zwraca liczbę, na przykład 5, a następnie zastąpić nią tę część, otrzymując =INDEX(C2:C20, 5).
Nagle formuła oznacza po prostu „zwróć piątą cenę”. Ten nawyk ułatwia debugowanie każdej zagnieżdżonej funkcji wyszukiwania.
=INDEX(C2:C20, MATCH(E1, A2:A20, 0))Szybkie sprawdzenie
Sprawdź, czy rozumiesz, jak te dwie funkcje współdziałają.
Podsumowanie: INDEX + MATCH
Połączono dwie funkcje w elastyczny mechanizm wyszukiwania:
- Wzorzec:
=INDEX(return_range, MATCH(lookup_value, lookup_range, 0)) - MATCH znajduje pozycję wiersza, a INDEX zwraca wartość z tej pozycji
- Kolumny wyszukiwania i zwracanych wartości są niezależne, więc można wyszukiwać równie łatwo w lewo, jak i w prawo
- Oba zakresy powinny mieć tę samą wysokość, a funkcję należy opakować w IFNA, aby czytelnie obsługiwać błędy
Następnie zobacz, dlaczego to podejście często przewyższa funkcję VLOOKUP.
=INDEX(C2:C20, MATCH(E1, A2:A20, 0))Często zadawane pytania
Czy lekcja „Łączenie INDEX i MATCH” jest bezpłatna?
Tak — pełny tekst „Łączenie INDEX i 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 „Łączenie INDEX i MATCH”?
Proszę użyć MATCH do przekazania pozycji do INDEX i utworzenia dynamicznego wyszukiwania. Ć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 „Łączenie INDEX i 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
- Pobieranie wartości za pomocą INDEX
- Znajdowanie pozycji za pomocą MATCH
- Łączenie INDEX i MATCH
- Dlaczego INDEX-MATCH przewyższa VLOOKUP