INDEX MATCH w Excelu dla dwuwymiarowego wyszukiwania

  • Udostępnij To
Michael Brown

Tutorial pokazuje kilka różnych formuł do wykonywania dwuwymiarowych lookupów w Excelu. Wystarczy przejrzeć alternatywy i wybrać swoją ulubioną :)

Szukając czegoś w arkuszu kalkulacyjnym programu Excel, w większości przypadków szukasz w pionie w kolumnach lub w poziomie w wierszach. Czasami jednak musisz szukać zarówno w wierszach, jak i w kolumnach. Innymi słowy, chcesz znaleźć wartość na przecięciu określonego wiersza i kolumny. Nazywa się to przeglądanie matrycy (aka. dwuwymiarowy lub 2-way lookup ), a ten tutorial pokazuje jak to zrobić na 4 różne sposoby.

    Formuła Excel INDEX MATCH

    Najpopularniejszym sposobem na wykonanie dwukierunkowego looku w Excelu jest użycie INDEX MATCH Jest to odmiana klasycznej formuły INDEX MATCH, do której dodajemy jeszcze jedną funkcję MATCH, aby uzyskać zarówno numer wiersza, jak i kolumny:

    INDEKS ( tablica danych , MATCH ( vlookup_value , lookup_column_range , 0), MATCH ( wartość hlookup , lookup_row_range , 0))

    Jako przykład, stwórzmy wzór, który wyciągnie z poniższej tabeli populację pewnego zwierzęcia w danym roku. Na początek definiujemy wszystkie argumenty:

    • Data_array - B2:E4 (komórki danych, bez nagłówków wierszy i kolumn)
    • Vlookup_value - H1 (zwierzę docelowe)
    • Lookup_column_range - A2:A4 (nagłówki wierszy: nazwy zwierząt) - A3:A4
    • Hlookup_value - H2 (rok docelowy)
    • Lookup_row_range - B1:E1 (nagłówki kolumn: lata)

    Złóż wszystkie argumenty razem, a otrzymasz tę formułę dla dwukierunkowego lookupu:

    =INDEX(B2:E4, MATCH(H1, A2:A4, 0), MATCH(H2, B1:E1, 0))

    Jak działa ta formuła

    Choć na pierwszy rzut oka może to wyglądać na skomplikowane, logika formuły jest naprawdę prosta i łatwa do zrozumienia. Funkcja INDEX pobiera wartość z tablicy danych na podstawie numerów wierszy i kolumn, a dwie funkcje MATCH dostarczają te numery:

    INDEX(B2:E4, wiersz_num, kolumna_num)

    Tutaj wykorzystujemy zdolność MATCH(lookup_value, lookup_array, [match_type]) do zwrócenia wartości położenie względne z lookup_value w lookup_array .

    Aby więc uzyskać numer wiersza, szukamy interesującego nas zwierzęcia (H1) w poprzek nagłówków wierszy (A2:A4):

    MATCH(H1, A2:A4, 0)

    Aby uzyskać numer kolumny, szukamy roku docelowego (H2) w nagłówkach kolumn (B1:E1):

    MATCH(H2, B1:E1, 0)

    W obu przypadkach szukamy dokładnego dopasowania poprzez ustawienie trzeciego argumentu na 0.

    W tym przykładzie pierwsze MATCH zwraca 2, ponieważ nasza wartość vlookup (Niedźwiedź polarny) znajduje się w A3, która jest drugą komórką w A2:A4. Drugie MATCH zwraca 3, ponieważ wartość hlookup (2000) znajduje się w D1, która jest trzecią komórką w B1:E1.

    Biorąc pod uwagę powyższe, wzór sprowadza się do:

    INDEX(B2:E4, 2, 3)

    I zwróć wartość na przecięciu 2 wiersza i 3 kolumny w tablicy danych B2:E4, czyli wartość w komórce D3.

    VLOOKUP i MATCH formuła dla 2-kierunkowego wyszukiwania

    Innym sposobem na wykonanie dwuwymiarowego looku w Excelu jest użycie kombinacji funkcji VLOOKUP i MATCH:

    VLOOKUP( vlookup_value , tablica , MATCH( hlookup_value , lookup_row_range , 0), FALSE)

    Dla naszej przykładowej tabeli wzór przyjmuje następujący kształt:

    =VLOOKUP(H1, A2:E4, MATCH(H2, A1:E1, 0), FALSE)

    Gdzie:

    • Tablica - A2:E4 (komórki danych wraz z nagłówkami wierszy)
    • Vlookup_value - H1 (zwierzę docelowe)
    • Hlookup_value - H2 (rok docelowy)
    • Lookup_row_range - A1:E1 (nagłówki kolumn: lata)

    Jak działa ta formuła

    Rdzeniem formuły jest funkcja VLOOKUP skonfigurowana na dopasowanie dokładne (ostatni argument ustawiony na FALSE), która wyszukuje wartość lookup (H1) w pierwszej kolumnie tablicy (A2:E4) i zwraca wartość z innej kolumny w tym samym wierszu. Aby określić, z której kolumny ma zostać zwrócona wartość, używamy funkcji MATCH, która również jest skonfigurowana na dopasowanie dokładne (ostatni argument ustawiony na 0):

    MATCH(H2, A1:E1, 0)

    MATCH szuka wartości w H2 w nagłówkach kolumn (A1:E1) i zwraca względną pozycję znalezionej komórki. W naszym przypadku rok docelowy (2010) znajduje się w E1, która jest 5. w tablicy lookup. Tak więc liczba 5 trafia do col_index_num argument VLOOKUP:

    VLOOKUP(H1, A2:E4, 5, FALSE)

    VLOOKUP bierze to stamtąd, znajduje dokładne dopasowanie dla swojej wartości lookup w A2 i zwraca wartość z 5 kolumny w tym samym wierszu, która jest komórką E2.

    Ważna uwaga! Aby formuła działała poprawnie, tablica (A2:E4) z VLOOKUP i lookup_array MATCH (A1:E1) musi mieć taką samą liczbę kolumn, w przeciwnym razie liczba przekazana przez MATCH do col_index_num będzie nieprawidłowa (nie będzie odpowiadała pozycji kolumny w tablica ).

    Funkcja XLOOKUP do przeglądania wierszy i kolumn

    Niedawno Microsoft wprowadził w Excelu jeszcze jedną funkcję, która ma zastąpić wszystkie dotychczasowe funkcje lookup, takie jak VLOOKUP, HLOOKUP czy INDEX MATCH. XLOOKUP może między innymi spojrzeć na przecięcie określonego wiersza i kolumny:

    XLOOKUP( vlookup_value , vlookup_column_range , XLOOKUP( hlookup_value , hlookup_row_range , tablica danych ))

    Dla naszego przykładowego zestawu danych formuła przebiega następująco:

    =XLOOKUP(H1, A2:A4, XLOOKUP(H2, B1:E1, B2:E4))

    Uwaga. Obecnie XLOOKUP to funkcja w wersji beta, która jest dostępna tylko dla subskrybentów Office 365, którzy należą do programu Office Insiders.

    Jak działa ta formuła

    Formuła wykorzystuje zdolność XLOOKUP do zwracania całego wiersza lub kolumny. Funkcja wewnętrzna wyszukuje rok docelowy w wierszu nagłówkowym i zwraca wszystkie wartości dla tego roku (w tym przykładzie dla roku 1980). Wartości te trafiają do tabeli tablica argument zewnętrznego XLOOKUP:

    XLOOKUP(H1, A2:A4, {22000;25000;700}))

    Zewnętrzna funkcja XLOOKUP wyszukuje zwierzę docelowe w nagłówkach kolumn i zwraca wartość w tej samej pozycji z return_array.

    Formuła SUMPRODUCT dla dwukierunkowego wyszukiwania

    Funkcja SUMPRODUCT jest jak szwajcarski scyzoryk w Excelu - może robić tak wiele rzeczy poza swoim wyznaczonym celem, zwłaszcza jeśli chodzi o ocenę wielu kryteriów.

    Aby wyszukać dwa kryteria, w wierszach i kolumnach, użyj tej ogólnej formuły:

    SUMPRODUKT( vlookup_column_range = vlookup_value ) * ( hlookup_row_range = hlookup_value ), tablica danych )

    Aby wykonać 2-way lookup w naszym zbiorze danych, formuła przebiega następująco:

    =SUMA((A2:A4=H1) * (B1:E1=H2), B2:E4)

    Poniższa składnia też będzie działać:

    =SUMA((A2:A4=H1) * (B1:E1=H2) * B2:E4)

    Jak działa ta formuła

    W sercu formuły porównujemy dwie wartości lookup względem nagłówków wierszy i kolumn (docelowe zwierzę w H1 względem wszystkich nazw zwierząt w A2:A4 oraz docelowy rok w H2 względem wszystkich lat w B1:E1):

    (A2:A4=H1) * (B1:E1=H2)

    W wyniku tego powstają 2 tablice wartości TRUE i FALSE, gdzie TRUE reprezentuje dopasowania:

    {FALSE;FALSE;TRUE} * {FALSE,TRUE,FALSE,FALSE}

    Operacja mnożenia zamienia wartości TRUE i FALSE na 1 i 0 i tworzy dwuwymiarową tablicę składającą się z 4 kolumn i 3 wierszy (wiersze oddzielone są średnikami, a każda kolumna danych przecinkiem):

    {0,0,0,0;0,0,0,0;0,1,0,0}

    Funkcje SUMPRODUCT mnoży elementy powyższej tablicy przez pozycje B2:E4 na tych samych pozycjach:

    {0,0,0,0;0,0,0,0;0,1,0,0} * {22000,13800,8500,3500;25000,23000,22000,20000;700,2000,2300,2500}

    A ponieważ mnożenie przez zero daje zero, przetrwała tylko pozycja odpowiadająca 1 w pierwszej tablicy:

    SUMPRODUCT({0,0,0,0;0,0,0,0;0,2000,0,0})

    Na koniec SUMPRODUCT sumuje elementy wynikowej tablicy i zwraca wartość 2000.

    Uwaga. Jeśli Twoja tabela ma więcej niż jeden wiersz lub/i nagłówki kolumn o tej samej nazwie, końcowa tablica będzie zawierać więcej niż jedną liczbę inną niż zero, a wszystkie te liczby zostaną zsumowane. W rezultacie otrzymasz sumę wartości spełniających oba kryteria. To właśnie odróżnia formułę SUMPRODUCT od INDEX MATCH i VLOOKUP, które zwracają pierwsze znalezione dopasowanie.

    Wyszukiwanie macierzy z nazwanymi zakresami (explicit Intersection)

    Jeszcze jeden niesamowicie prosty sposób na zrobienie lookupu macierzy w Excelu to użycie nazwanych zakresów, oto jak:

    Część 1: Nazwij kolumny i wiersze

    Najszybszym sposobem na nazwanie każdego wiersza i każdej kolumny w twojej tabeli jest to:

    1. Wybierz całą tabelę (w naszym przypadku A1:E4).
    2. Na Formuły zakładka, w Nazwy zdefiniowane grupa, kliknij Tworzenie na podstawie wyboru lub naciśnij skrót Ctrl + Shift + F3.
    3. W Tworzenie nazw na podstawie wyboru okno dialogowe, wybierz Górny rząd oraz Lewa kolumna, i kliknij przycisk OK.

    To automatycznie tworzy nazwy na podstawie nagłówków wierszy i kolumn. Istnieje jednak kilka zastrzeżeń:

    • Jeśli nagłówki Twoich kolumn i/lub wierszy są liczbami lub zawierają określone znaki, które nie są dozwolone w nazwach Excela, nazwy dla takich kolumn i wierszy nie zostaną utworzone. Aby zobaczyć listę utworzonych nazw, otwórz Menedżera nazw ( Ctrl + F3 ). Jeśli brakuje niektórych nazw, zdefiniuj je ręcznie, jak wyjaśniono w Jak nazwać zakres w Excelu.
    • Jeśli niektóre z twoich nagłówków wierszy lub kolumn zawierają spacje, spacje zostaną zastąpione na przykład podkreśleniami, Niedźwiedź polarny .

    Dla naszej przykładowej tabeli Excel automatycznie utworzył tylko nazwy wierszy. Nazwy kolumn muszą być utworzone ręcznie, ponieważ nagłówki kolumn są liczbami. Aby to obejść, możesz po prostu poprzedzić liczby podkreślnikami, np. _1990 .

    W efekcie mamy następujące nazwane zakresy:

    Część 2: Zrób formułę lookupu macierzy

    Aby wyciągnąć wartość na przecięciu danego wiersza i kolumny, wystarczy w pustej komórce wpisać jedną z poniższych formuł generycznych:

    = nazwa_wiersza nazwa_kolumny

    Albo odwrotnie:

    = nazwa_kolumny nazwa_wiersza

    Na przykład, aby uzyskać populację wielorybów błękitnych w 1990 roku, wzór jest tak prosty, jak:

    =Blue_whale _1990

    Jeśli ktoś potrzebuje bardziej szczegółowych instrukcji, poniższe kroki przeprowadzą go przez proces:

    1. W komórce, w której chcesz, aby pojawił się wynik, wpisz znak równości (=).
    2. Zacznij wpisywać nazwę docelowego wiersza, powiedzmy, Niebieski_wieloryb Po wpisaniu kilku znaków Excel wyświetli wszystkie istniejące nazwy pasujące do wprowadzonych przez Ciebie danych. Kliknij dwukrotnie żądaną nazwę, aby wprowadzić ją do swojej formuły:
    3. Po nazwie wiersza wpisz a przestrzeń , który działa jako operator przecięcia w tym przypadku.
    4. Wprowadź nazwę kolumny docelowej ( _1990 w naszym przypadku).
    5. Zaraz po wprowadzeniu obu nazw wierszy i kolumn Excel podświetli odpowiedni wiersz i kolumnę w Twojej tabeli, a Ty wciśniesz Enter, aby zakończyć formułę:

    Twój lookup macierzy jest wykonany, a poniższy zrzut ekranu pokazuje wynik:

    Tak wygląda przeglądanie w wierszach i kolumnach w Excelu. Dziękuję za przeczytanie i mam nadzieję, że zobaczymy się na naszym blogu za tydzień!

    Dostępne pliki do pobrania

    2-dimensional lookup sample workbook

    Michael Brown jest oddanym entuzjastą technologii z pasją do upraszczania złożonych procesów za pomocą narzędzi programowych. Dzięki ponad dziesięcioletniemu doświadczeniu w branży technologicznej doskonalił swoje umiejętności w programach Microsoft Excel i Outlook, a także w Arkuszach i Dokumentach Google. Blog Michaela jest poświęcony dzieleniu się swoją wiedzą i doświadczeniem z innymi, dostarczając łatwych do zastosowania wskazówek i samouczków w celu poprawy produktywności i wydajności. Niezależnie od tego, czy jesteś doświadczonym profesjonalistą, czy początkującym, blog Michaela oferuje cenne spostrzeżenia i praktyczne porady dotyczące maksymalnego wykorzystania tych niezbędnych narzędzi programowych.