Wyszukiwanie dwukierunkowe za pomocą INDEX-MATCH-MATCH
Znajdowanie wartości na przecięciu dopasowanego wiersza i kolumny
Wyszukiwanie dwukierunkowe za pomocą INDEX-MATCH-MATCH to bezpłatna lekcja Excel Formulas Academy na CoddyKit. To lekcja 1 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.
Problem wyszukiwania dwukierunkowego
Wyobraźmy sobie siatkę miesięcznej sprzedaży, w której regiony znajdują się po lewej stronie, a miesiące są rozmieszczone wzdłuż górnego wiersza. Chcą Państwo znaleźć wartość w miejscu przecięcia wybranego regionu i wybranego miesiąca.
Standardowe wyszukiwanie znajduje wartość, przeszukując tylko jeden kierunek. Wyszukiwanie dwukierunkowe przeszukuje oba kierunki jednocześnie: znajduje właściwy wiersz i właściwą kolumnę, a następnie zwraca wartość znajdującą się na ich przecięciu.
Klasycznym narzędziem do tego celu jest funkcja INDEX połączona z dwoma wywołaniami MATCH, często zapisywana jako INDEX-MATCH-MATCH.
Podsumowanie: działanie funkcji INDEX
Funkcja INDEX zwraca wartość z zakresu na podstawie jej położenia. Pełna postać to INDEX(array, row_num, column_num).
Należy podać blok komórek, numer wiersza i numer kolumny, a funkcja zwróci wartość znajdującą się w tym miejscu. Na przykład w siatce rozpoczynającej się od B2 żądanie wiersza 3 i kolumny 2 zwróci wartość znajdującą się 3 wiersze w dół i 2 kolumny w prawo wewnątrz tego bloku.
Najważniejsza zasada: funkcja INDEX potrzebuje pozycji, a nie etykiet. Właśnie takie pozycje dostarcza funkcja MATCH.
=INDEX(B2:E5, 3, 2)Podsumowanie: działanie funkcji MATCH
Funkcja MATCH znajduje pozycję wartości w pojedynczym wierszu lub kolumnie. Jej postać to MATCH(lookup_value, lookup_array, match_type).
Jako typ dopasowania należy użyć wartości 0, aby uzyskać dokładne dopasowanie. Wynikiem jest liczba określająca pozycję wartości, licząc od 1.
Jeśli wartość „East” jest drugim elementem zakresu A2:A5, funkcja MATCH zwróci 2. Ta wartość 2 może posłużyć jako numer wiersza dla funkcji INDEX.
=MATCH("East", A2:A5, 0)Koncepcja dwóch funkcji MATCH
W przypadku wyszukiwania dwukierunkowego funkcję MATCH wywołuje się dwukrotnie:
- Jedna funkcja MATCH znajduje wiersz, w którym znajduje się dany region.
- Druga funkcja MATCH znajduje kolumnę, w której znajduje się dany miesiąc.
Następnie obie liczby przekazuje się do funkcji INDEX. Funkcja MATCH wyszukująca wiersz przeszukuje pionowy zakres etykiet, a funkcja MATCH wyszukująca kolumnę — poziomy zakres nagłówków.
Wynikiem jest pojedyncza komórka znajdująca się na przecięciu danego wiersza i kolumny.
Konfigurowanie siatki
Wyobraźmy sobie następujący układ. Etykiety regionów znajdują się w zakresie A2:A5 (East, West, North, South). Nagłówki miesięcy znajdują się w zakresie B1:D1 (Jan, Feb, Mar). Rzeczywiste wartości sprzedaży wypełniają zakres B2:D5.
Wyszukiwanie opiera się na dwóch komórkach wejściowych: G1 zawiera szukany region, a G2 — szukany miesiąc.
Celem jest utworzenie jednej formuły, która odczyta wartości z G1 i G2 oraz zwróci pasującą wartość sprzedaży z zakresu B2:D5.
Tworzenie funkcji MATCH dla wiersza
Najpierw należy znaleźć region. Funkcja MATCH przeszukuje pionową listę etykiet A2:A5 w poszukiwaniu wartości wpisanej w G1.
Jeśli G1 zawiera wartość „North”, a North jest trzecią etykietą, funkcja MATCH zwróci 3.
Ta liczba wskazuje funkcji INDEX, który wiersz bloku danych należy odczytać. Należy zauważyć, że przeszukujemy A2:A5, czyli wyłącznie etykiety, a nie dane. Dzięki temu pozycja 3 odpowiada trzeciemu wierszowi danych.
=MATCH(G1, A2:A5, 0)Tworzenie funkcji MATCH dla kolumny
Następnie należy znaleźć miesiąc. Ta funkcja MATCH przeszukuje poziomy wiersz nagłówków B1:D1 w poszukiwaniu wartości z G2.
Jeśli G2 zawiera wartość „Feb”, a Feb jest drugim nagłówkiem, funkcja MATCH zwróci 2.
Ta liczba stanie się pozycją kolumny dla funkcji INDEX. Podobnie jak w przypadku wierszy, przeszukujemy tylko nagłówki B1:D1, aby pozycja odpowiadała kolumnom danych w zakresie B2:D5.
=MATCH(G2, B1:D1, 0)Łączenie wszystkich elementów
Teraz należy umieścić oba wywołania MATCH wewnątrz funkcji INDEX. Blok danych B2:D5 jest tablicą, funkcja MATCH dla wiersza dostarcza numer wiersza, a funkcja MATCH dla kolumny — numer kolumny.
Gdy G1 zawiera wartość „North”, a G2 — „Feb”, funkcja MATCH dla wiersza zwraca 3, a funkcja MATCH dla kolumny zwraca 2. W rezultacie INDEX zwraca wartość z wiersza 3 i kolumny 2 zakresu B2:D5.
Ta pojedyncza formuła stanowi kompletne wyszukiwanie dwukierunkowe.
=INDEX(B2:D5, MATCH(G1, A2:A5, 0), MATCH(G2, B1:D1, 0))Przebieg obliczeń
Załóżmy, że zakres B2:D5 zawiera następujące dane: wiersz North to Jan 50, Feb 80, Mar 65.
- MATCH("North", A2:A5, 0) zwraca 3.
- MATCH("Feb", B1:D1, 0) zwraca 2.
- INDEX(B2:D5, 3, 2) odczytuje wiersz 3 i kolumnę 2, zwracając 80.
Zmień G1 na "East" lub G2 na "Mar", a cała formuła zostanie natychmiast przeliczona. Na tym polega siła sterowania funkcją INDEX za pomocą dwóch wyszukiwań MATCH.
Dlaczego nie użyć po prostu VLOOKUP?
VLOOKUP przeszukuje tylko pierwszą kolumnę i zwraca wartość znajdującą się w stałej liczbie kolumn na prawo od niej. Aby zmieniać miesiące, trzeba byłoby samodzielnie wpisać lub obliczyć indeks kolumny.
INDEX-MATCH-MATCH pozwala dynamicznie wybierać zarówno wiersz, jak i kolumnę na podstawie etykiety. Można zmieniać kolejność kolumn i dodawać nowe miesiące, a formuła nadal działa, ponieważ dopasowuje tekst nagłówka, a nie stałą liczbę kolumn.
Unikanie niezgodności zakresów
Najczęstszym błędem są niezgodne zakresy. Zakres MATCH wyszukujący wiersz musi mieć taką samą wysokość jak blok danych INDEX, a zakres MATCH wyszukujący kolumnę musi mieć taką samą szerokość.
Zakres A2:A5 ma 4 wiersze, podobnie jak B2:D5, więc wynik MATCH równy 3 rzeczywiście oznacza trzeci wiersz danych. Jeśli przypadkowo przeszukasz A1:A5, który zawiera nagłówek, pozycje przesuną się o jeden i otrzymasz niewłaściwą komórkę.
=INDEX(B2:D5, MATCH(G1, A2:A5, 0), MATCH(G2, B1:D1, 0))Szybkie sprawdzenie
Sprawdź, czy rozumiesz wzorzec wyszukiwania dwukierunkowego.
Podsumowanie lekcji
Poznałeś(-aś) wzorzec wyszukiwania dwukierunkowego:
- INDEX zwraca wartość znajdującą się na wskazanej pozycji wiersza i kolumny w obrębie bloku.
- Jedna funkcja MATCH znajduje wiersz, przeszukując etykiety ułożone pionowo.
- Druga funkcja MATCH znajduje kolumnę, przeszukując nagłówki ułożone poziomo.
Połączona formuła =INDEX(data, MATCH(row), MATCH(col)) odczytuje dwa dane wejściowe i zwraca wartość z miejsca ich przecięcia. Aby uniknąć niezgodności, zakresy MATCH powinny mieć taki sam rozmiar jak blok danych.
=INDEX(B2:D5, MATCH(G1, A2:A5, 0), MATCH(G2, B1:D1, 0))Często zadawane pytania
Czy lekcja „Wyszukiwanie dwukierunkowe za pomocą INDEX-MATCH-MATCH” jest bezpłatna?
Tak — pełny tekst „Wyszukiwanie dwukierunkowe za pomocą INDEX-MATCH-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 dwukierunkowe za pomocą INDEX-MATCH-MATCH”?
Znajdowanie wartości na przecięciu dopasowanego wiersza i kolumny Ć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 1 z 4.
Ile czasu zajmuje lekcja „Wyszukiwanie dwukierunkowe za pomocą INDEX-MATCH-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