Spis treści
Kiedy musisz znaleźć dane w swoim arkuszu, które odpowiadają pewnemu kluczowemu rekordowi, to zwykle Google Sheets VLOOKUP zwraca się do. Ale proszę bardzo: VLOOKUP policzkuje cię z ograniczeniami prawie natychmiast. Dlatego lepiej zwiększyć zasoby do zadania, ucząc się INDEX MATCH.
INDEX MATCH w Google Sheets jest połączeniem dwóch funkcji: INDEX i MATCH. Używane w tandemie, działają jako lepsza alternatywa dla Google Sheets VLOOKUP. Poznajmy ich możliwości razem w tym wpisie na blogu. Ale najpierw chciałbym dać ci szybką wycieczkę po ich własnych rolach w arkuszach kalkulacyjnych.
Funkcja MATCH w arkuszach Google
Chciałbym zacząć od Google Sheets MATCH, ponieważ jest to naprawdę proste. Skanuje twoje dane dla konkretnej wartości i zwraca jej pozycję:
=MATCH(search_key, range, [search_type])- klucz wyszukiwania to ta płyta, której szukasz. Wymagana.
- zakres jest wierszem lub kolumną, w której należy szukać. Wymagane.
Uwaga. MATCH akceptuje tylko tablice jednowymiarowe: albo wiersze albo kolumny.
- poszukiwanie_typu jest opcjonalne i określa czy dopasowanie powinno być dokładne czy przybliżone. Jeśli pominięte, to domyślnie wynosi 1:
- 1 oznacza, że zakres jest sortowany rosnąco. Funkcja pobiera największą wartość mniejszą lub równą twojej klucz wyszukiwania .
- 0 sprawi, że funkcja będzie szukać dokładnego dopasowania w przypadku, gdy twój zakres nie jest posortowany.
- -1 podpowiada, że rekordy są sortowane malejąco. W tym przypadku funkcja pobiera najmniejszą wartość większą lub równą twojej klucz wyszukiwania .
Oto przykład: aby uzyskać pozycję określonej jagody na liście wszystkich jagód, potrzebuję następującej formuły MATCH w moich arkuszach Google:
=MATCH("Blueberry", A1:A10, 0)
Funkcja INDEX w arkuszu Google
Podczas gdy MATCH pokazuje, gdzie szukać swojej wartości (jej położenie w zakresie), funkcja Google Sheets INDEX pobiera samą wartość na podstawie jej przesunięć w wierszu i kolumnie:
=INDEX(odwołanie, [wiersz], [kolumna])- odnośnik to zakres, w którym należy szukać. Wymagane.
- wiersz to liczba wierszy do odsunięcia od pierwszej komórki twojego zakresu. Opcjonalne, 0 jeśli pominięte.
- kolumna , tak jak wiersz , to liczba kolumn offsetowych. Również opcjonalne, również 0 jeśli pominięte.
Jeśli określisz oba opcjonalne argumenty (wiersz i kolumnę), Google Sheets INDEX zwróci rekord z komórki docelowej:
=INDEX(A1:C10, 7, 1)
Pomiń jeden z tych argumentów, a funkcja otrzyma odpowiednio cały wiersz lub kolumnę:
=INDEX(A1:C10, 7)
Jak używać INDEX MATCH w Google Sheets - przykłady formuł
Kiedy INDEX i MATCH są używane razem w arkuszach kalkulacyjnych, są one najpotężniejsze. Mogą one absolutnie zastąpić Google Sheets VLOOKUP i pobrać wymagany rekord z tabeli na podstawie wartości klucza.
Zbuduj swoją pierwszą formułę INDEX MATCH w Google Sheets
Załóżmy, że chciałbyś uzyskać informacje o zapasach żurawiny z tej samej tabeli, której użyłem powyżej. Zamieniłem tylko kolumny B i C (dowiesz się dlaczego nieco później).
- Teraz wszystkie jagody są wymienione w kolumnie C. Funkcja MATCH z arkusza Google pomoże Ci zlokalizować dokładny rząd żurawiny: 8
=MATCH("Cranberry", C1:C10, 0)
- Włóż tę całą formułę MATCH do wiersz argument w funkcji INDEX:
=INDEX(A1:C10, MATCH("Cranberry", C1:C10, 0))
Ten zwróci cały rząd z żurawiną w środku.
- Ale ponieważ wszystko, czego potrzebujesz, to informacje o zapasach, określ również numer kolumny lookup: 3
=INDEX(A1:C10, MATCH("Cranberry", C1:C10,0), 2)
- Voila! Zobacz też: Obliczanie czasu w arkuszach Google
- Możesz pójść dalej i zrezygnować z tego ostatniego wskaźnika kolumny ( 2 ). Nie będzie on w ogóle potrzebny, jeśli będziesz używał tylko kolumny lookup ( B1:B10 ), a nie całą tablicę ( A1:C10 ) jako pierwszy argument:
=INDEX(B1:B10, MATCH("Cranberry", C1:C10, 0))
Wskazówka. wygodniejszym sposobem sprawdzenia dostępności różnych jagód byłoby umieszczenie ich na liście rozwijanej ( E2 ) i skieruj swoją funkcję MATCH do komórki z tą listą:
=INDEX(B1:B10, MATCH(E2, C1:C10, 0))
Gdy wybierzesz jagodę, powiązana wartość odpowiednio się zmieni:
Dlaczego INDEX MATCH w Google Sheets jest lepszy niż VLOOKUP
Wiesz już, że arkusz Google INDEX MATCH szuka twojej wartości w tabeli i zwraca inny powiązany rekord z tego samego wiersza. I wiesz, że arkusz Google VLOOKUP robi dokładnie to samo. Więc po co się męczyć?
Chodzi o to, że, INDEX MATCH ma kilka głównych zalet nad VLOOKUP:
- Możliwe jest wyszukiwanie po lewej stronie Zmieniłem wcześniej miejsca kolumn, aby zilustrować to: funkcja INDEX MATCH w Google Sheets może i szuka na lewo od kolumny wyszukiwania. VLOOKUP zawsze przeszukuje pierwszą kolumnę zakresu i szuka dopasowań po jej prawej stronie - inaczej dostaje tylko błędy #N/A:
- Brak zabałaganionych referencji podczas dodawania nowych kolumn i przenoszenia istniejących. Jeśli dodasz lub przeniesiesz kolumny, INDEX MATCH odzwierciedli zmiany automatycznie, bez ingerencji w wynik. Ponieważ używasz odwołań do kolumn, są one natychmiast dostosowywane przez Google Sheets:
Spróbuj to zrobić za pomocą VLOOKUP: wymaga on numeru zamówienia, a nie odwołania do komórki dla kolumny lookup. W ten sposób po prostu skończysz otrzymując złą wartość, ponieważ inna kolumna zajmuje to samo miejsce - kolumna 2 w moim przykładzie:
- Rozważa sprawę tekstu w razie potrzeby (więcej o tym zaraz poniżej).
- Może być używany do pionowego lookupu na podstawie wielu kryteriów.
Zapraszam do szczegółowego przyjrzenia się dwóm ostatnim punktom poniżej.
Wrażliwe na wielkość liter v-lookup z INDEX MATCH w Google Sheets
INDEX MATCH to go-to, jeśli chodzi o wrażliwość na wielkość liter.
Załóżmy, że wszystkie jagody są sprzedawane na dwa sposoby - luzem (ważone przy ladzie) i pakowane w kartony. Stąd na liście są dwa wystąpienia każdej jagody zapisane w różnych przypadkach, każda z własnym identyfikatorem, który również różni się w przypadkach:
Jak więc sprawdzić informacje o stanie magazynowym jagody sprzedawanej w określony sposób? VLOOKUP zwróci pierwszą nazwę, którą znajdzie bez względu na jej przypadek.
Na szczęście INDEX MATCH dla Google Sheets potrafi to zrobić poprawnie, wystarczy użyć jednej dodatkowej funkcji - FIND lub EXACT.
Przykład 1. FIND dla Vlookup z rozróżnianiem wielkości liter
FIND jest funkcją wrażliwą na wielkość liter w Google Sheets, co czyni ją świetną dla pionowego lookupu wrażliwego na wielkość liter:
=ArrayFormula(INDEX(B2:B19, MATCH(1, FIND(E2, C2:C19)), 0))
Zobaczmy, co się dzieje w tej formule:
- FIND skanuje kolumnę C ( C2:C19 ) za zapis od E2 ( wiśnia ) z uwzględnieniem wielkości liter. Po zlokalizowaniu formuła "oznacza" tę komórkę liczbą -. 1 .
- MATCH wyszukuje ten znak -. 1 - w tej samej kolumnie ( C ) i przekazuje numer swojego wiersza do INDEX.
- INDEX schodzi do tego wiersza w kolumnie B ( B2:B19 ) i pobiera wymagany rekord do Ciebie.
- Kiedy skończysz budować formułę, naciśnij Ctrl+Shift+Enter, aby dodać na początku ArrayFormula. Jest to wymagane, ponieważ bez tego FIND nie będzie mógł wyszukiwać w tablicach (w więcej niż jednej komórce). Możesz też wpisać ' ArrayFormula ' z klawiatury.
Przykład 2. EXACT dla Vlookup z rozróżnianiem wielkości liter
Jeśli zastąpisz FIND przez EXACT, ten ostatni będzie szukał rekordów z dokładnie tymi samymi znakami, łącznie z ich przypadkiem tekstowym.
Jedyna różnica polega na tym, że EXACT "oznacza" mecz za pomocą TRUE zamiast liczby 1 Stąd pierwszym argumentem dla MATCH powinien być TRUE :
=ArrayFormula(INDEX(B2:B19, MATCH(TRUE, EXACT(E2, C2:C19), 0)))
Arkusze Google INDEX MATCH z wieloma kryteriami
Co jeśli istnieje kilka warunków, na podstawie których chciałbyś pobrać rekord?
Sprawdźmy cenę wiśnia który jest sprzedawany w Wiaderka PP i jest już ucieczka :
Ułożyłem wszystkie kryteria na listach rozwijanych w kolumnie F. I to właśnie Google Sheets INDEX MATCH obsługuje wiele kryteriów, a nie VLOOKUP. Oto formuła, której będziesz musiał użyć:
=ArrayFormula(INDEX(B2:B24, MATCH(CONCATENATE(F2:F4), A2:A24&C2:C24&D2:D24, 0),))
Nie panikujcie :) Jego logika jest właściwie dość prosta:
- ZBIERZ(F2:F4) łączy wszystkie trzy rekordy z komórek z kryteriami w jeden ciąg, jak to:
Wiadro CherryPPrzebieg
To jest klucz wyszukiwania dla MATCH, czyli inaczej mówiąc, czego szukasz w tabeli.
- A2:A24&C2:C24&D2:D24 stanowić zakres Ponieważ wszystkie trzy kryteria mają miejsce w trzech oddzielnych kolumnach, w ten sposób niejako łączymy je ze sobą:
WiśniaTaca kartonowaW magazynie
CherryOpakowanie folioweWyłączone z magazynu
Wiadro CherryPPrzebieg
itp.
- Ostatni argument w MATCH -. 0 - umożliwia znalezienie dokładnego dopasowania dla Wiadro CherryPPrzebieg wśród tych wszystkich rzędów połączonych kolumn. Jak widać, jest w 3. rzędzie.
- I wtedy INDEX robi swoje: pobiera rekord z 3 wiersza kolumny B.
- ArrayFormula jest używana, aby umożliwić innym funkcjom pracę z tablicami.
Wskazówka. jeśli twoja formuła nie znajdzie dopasowania, zwróci błąd. aby tego uniknąć, możesz zawinąć całą tę formułę w IFERROR (uczynić ją pierwszym argumentem) i wpisać to, co chcesz zobaczyć w komórce zamiast błędów jako drugi argument:
=IFERROR(ArrayFormula(INDEX(B2:B27, MATCH(CONCATENATE(F2:F4), A2:A27&C2:C27&D2:D27, 0),)), "Not found")
Lepsza alternatywa dla INDEX MATCH w Google Sheets - wielokrotne dopasowanie VLOOKUP
Niezależnie od tego, jaką funkcję wyszukiwania preferujesz, VLOOKUP lub INDEX MATCH, istnieje lepsza alternatywa dla nich obu.
Multiple VLOOKUP Matches to specjalny dodatek do Google Sheets przeznaczony do:
- lookup bez formuł
- wyszukiwanie we wszystkich kierunkach
- wyszukiwanie według wielu warunków dla różnych typów danych: tekst, liczby, daty, czas, itp.
- pobrać kilka meczów, tyle ile potrzebujesz (oczywiście pod warunkiem, że jest ich tyle samo w twojej tabeli)
Interfejs jest prosty, więc nie będziesz musiał mieć wątpliwości, czy wszystko robisz poprawnie:
- Wybierz zakres źródła.
- Ustaw liczbę meczów i kolumn do zwrócenia.
- Dostosuj warunki za pomocą predefiniowanych operatorów ( zawiera, =, nie jest pusty , między , etc.).
Będziesz mógł również:
- podgląd wyniku
- zdecydować, gdzie go umieścić
- i jak: jako wzór czy tylko wartości
Nie przegap okazji do sprawdzenia dodatku. Śmiało zainstaluj go z Google Workspace Marketplace, a jego strona samouczka szczegółowo wyjaśni każdą opcję.
Przygotowaliśmy również specjalny film instruktażowy:
Do zobaczenia w komentarzach poniżej lub w kolejnym artykule ;)