INDEX MATCH в Google Sheets - друг начин за вертикално търсене

  • Споделя Това
Michael Brown

Когато трябва да намерите данни в листа, които съответстват на определен ключов запис, обикновено се обръщате към VLOOKUP в Google Sheets. Но ето че VLOOKUP ви удря с ограничения почти веднага. Ето защо е по-добре да увеличите ресурсите за задачата, като научите INDEX MATCH.

INDEX MATCH в Google Sheets е комбинация от две функции: INDEX и MATCH. Когато се използват в тандем, те действат като по-добра алтернатива на VLOOKUP в Google Sheets. Нека да открием възможностите им заедно в тази публикация в блога. Но първо бих искал да ви направя кратка обиколка на собствените им роли в електронните таблици.

    Функция MATCH в Google Sheets

    Бих искал да започна с Google Sheets MATCH, тъй като е много прост. Той сканира данните ви за определена стойност и връща нейната позиция:

    =MATCH(search_key, range, [search_type])
    • search_key е този запис, който търсите.
    • обхват е ред или колона, в които да се търси. Изисква се.

      Забележка: MATCH приема само едномерни масиви: ред или колона.

    • search_type не е задължителна и определя дали съвпадението трябва да бъде точно или приблизително. Ако е пропусната, тя е 1 по подразбиране:
      • 1 означава, че обхватът е подреден във възходящ ред. Функцията получава най-голямата стойност, по-малка или равна на вашата search_key .
      • 0 ще накара функцията да търси точното съвпадение, в случай че диапазонът ви не е сортиран.
      • -1 подсказва, че записите се подреждат чрез низходящо сортиране. В този случай функцията получава най-малката стойност, по-голяма или равна на вашата search_key .

    Ето един пример: за да получа информация за позицията на определен плод в списъка с всички плодове, ми е необходима следната формула MATCH в моите листове на Google:

    =MATCH("Blueberry", A1:A10, 0)

    Функцията INDEX на Google Sheets

    Докато функцията MATCH показва къде да се търси стойността (нейното местоположение в диапазона), функцията INDEX на Google Sheets извлича самата стойност въз основа на отместването ѝ от реда и колоната:

    =INDEX(референция, [ред], [колона])
    • справка е диапазонът, в който да търсите.
    • ред е броят на редовете, които трябва да се изместят от първата клетка на диапазона. По избор, 0, ако е пропуснато.
    • колона , точно както ред , е броят на отместващите колони. също по избор, също 0, ако е пропуснато.

    Ако посочите и двата незадължителни аргумента (ред и колона), Google Sheets INDEX ще върне запис от целевата клетка:

    =INDEX(A1:C10, 7, 1)

    Ако пропуснете един от тези аргументи, функцията ще получи целия ред или колона:

    =INDEX(A1:C10, 7)

    Как да използвате INDEX MATCH в Google Sheets - примери за формули

    Когато INDEX и MATCH се използват заедно в електронните таблици, те са най-мощни. Те могат напълно да заместят VLOOKUP в Google Sheets и да извлекат необходимия запис от таблица въз основа на ключовата стойност.

    Създайте първата си формула INDEX MATCH за Google Sheets

    Да предположим, че искате да получите информация за запасите от червена боровинка от същата таблица, която използвах по-горе. Размених само колони Б и В (ще разберете защо малко по-късно).

    1. Сега всички плодове са изброени в колона C. Функцията MATCH на Google Sheets ще ви помогне да намерите точния ред на червената боровинка: 8

      =MATCH("Червена боровинка", C1:C10, 0)

    2. Поставете цялата тази формула MATCH в ред аргумент във функцията INDEX:

      =INDEX(A1:C10, MATCH("Червена боровинка", C1:C10, 0))

      Този ще върне целия ред с червена боровинка.

    3. Но тъй като ви е необходима само информация за акциите, посочете и номера на колоната за търсене: 3

      =INDEX(A1:C10, MATCH("Червена боровинка", C1:C10,0), 2)

    4. Воала!

    5. Можете да отидете по-далеч и да се откажете от последния индикатор на колоната ( 2 ). Тя няма да ви е необходима, ако използвате само колоната за търсене ( B1:B10 ), а не цялата таблица ( A1:C10 ) като първи аргумент:

      =INDEX(B1:B10, MATCH("Червена боровинка", C1:C10, 0))

      Съвет. По-удобен начин за проверка на наличността на различни плодове е да ги поставите в падащ списък ( E2 ) и насочете функцията MATCH към клетката с този списък:

      =INDEX(B1:B10, MATCH(E2, C1:C10, 0))

      След като изберете плода, съответната стойност ще се промени съответно:

    Защо INDEX MATCH в Google Sheets е по-добър от VLOOKUP

    Вече знаете, че Google Sheets INDEX MATCH търси вашата стойност в таблица и връща друг свързан запис от същия ред. Знаете, че Google Sheets VLOOKUP прави точно същото. Защо да се занимавате?

    Работата е там, че, INDEX MATCH има някои основни предимства над VLOOKUP:

    1. Възможно е търсене от лявата страна . По-рано промених местата на колоните, за да илюстрирам това: функцията INDEX MATCH в Google Sheets може и търси вляво от колоната за търсене. VLOOKUP винаги търси в първата колона на обхвата и търси съвпадения вдясно от нея - в противен случай получава само грешки #N/A:

    2. Няма объркани препратки при добавяне на нови колони и преместване на съществуващи. Ако добавите или преместите колони, INDEX MATCH ще отрази промените автоматично, без да се намесва в резултата. Тъй като използвате препратки към колони, те се коригират незабавно от Google Sheets:

      Опитайте се да направите това с VLOOKUP: той изисква номера на поръчката, а не препратки към клетките за колона за търсене. Така в крайна сметка просто ще получите грешната стойност, защото друга колона заема същото място - колона 2 в моя пример:

    3. Разглежда случай на текст когато е необходимо (повече за това по-долу).
    4. Може да се използва за вертикално търсене въз основа на множество критерии.

    Приканвам ви да разгледате подробно последните две точки по-долу.

    V-търсене с отчитане на регистрите с INDEX MATCH в Google Sheets

    INDEX MATCH е подходящ, когато става въпрос за чувствителност към големи и малки букви.

    Да предположим, че всички плодове се продават по два начина - в насипно състояние (претеглени на касата) и опаковани в кутии. Следователно има две появявания на всеки плод, записани в различни случаи в списъка, всеки със собствен идентификатор, който също варира в различните случаи:

    И така, как можете да потърсите информация за складовата наличност на плод, продаван по определен начин? VLOOKUP ще върне първото намерено име, независимо от неговия случай.

    За щастие, INDEX MATCH за Google Sheets може да го направи правилно. Трябва само да използвате една допълнителна функция - FIND или EXACT.

    Пример 1. FIND за Vlookup с отчитане на големи и малки букви

    FIND е функция за определяне на големи и малки букви в Google Sheets, което я прави чудесна за вертикално търсене с отчитане на големи и малки букви:

    =ArrayFormula(INDEX(B2:B19, MATCH(1, FIND(E2, C2:C19)), 0))

    Нека да видим какво се случва в тази формула:

    1. FIND сканира колона C ( C2:C19 ) за записа от E2 ( череша Веднъж намерена, формулата "маркира" тази клетка с число - 1 .
    2. MATCH търси този знак - 1 - в същата колона ( C ) и предава номера на неговия ред на INDEX.
    3. INDEX стига до този ред в колона B ( B2:B19 ) и извлича необходимия запис за вас.
    4. Когато завършите съставянето на формулата, натиснете Ctrl+Shift+Enter, за да добавите ArrayFormula в началото. Тя е необходима, защото без нея FIND няма да може да търси в масиви (в повече от една клетка). Или можете да въведете ' ArrayFormula ' от клавиатурата.

    Пример 2. EXACT за Vlookup с отчитане на големи и малки букви

    Ако замените FIND с EXACT, последният ще търси записи с абсолютно еднакви символи, включително и с техните текстови падежи.

    Единствената разлика е, че EXACT "маркира" съвпадение с TRUE а не брой 1 . Следователно първият аргумент за MATCH трябва да бъде TRUE :

    =ArrayFormula(INDEX(B2:B19, MATCH(TRUE, EXACT(E2, C2:C19), 0)))

    INDEX MATCH на Google Sheets с множество критерии

    Какво да правите, ако има няколко условия, въз основа на които искате да извлечете записа?

    Нека проверим цената на череша който се продава в Кофи от PP и вече е изчерпване :

    Подредих всички критерии в падащите списъци в колона F. И именно INDEX MATCH на Google Sheets поддържа множество критерии, а не VLOOKUP. Ето формулата, която ще трябва да използвате:

    =ArrayFormula(INDEX(B2:B24, MATCH(CONCATENATE(F2:F4), A2:A24&C2:C24&D2:D24, 0),))

    Не се паникьосвайте! :) Логиката му всъщност е доста проста:

    1. CONCATENATE(F2:F4) комбинира трите записа от клетките с критерии в един низ по следния начин:

      CherryPP bucketRunning out

      Това е search_key за MATCH или, с други думи, какво търсите в таблицата.

    2. A2:A24&C2:C24&D2:D24 представляват обхват Тъй като и трите критерия се намират в три отделни колони, по този начин ги комбинирате:

      ЧерешаКартонена таваНа склад

      CherryФилмова опаковкаНе е налична

      CherryPP bucketRunning out

      и т.н.

    3. Последният аргумент в MATCH - 0 - дава възможност да се намери точното съответствие за CherryPP bucketRunning out сред всички тези редове от комбинирани колони. Както виждате, той е на третия ред.
    4. И тогава INDEX прави своето: извлича записа от третия ред на колона B.
    5. ArrayFormula се използва, за да позволи на други функции да работят с масиви.

    Съвет: Ако формулата ви не намери съвпадение, тя ще върне грешка. За да избегнете това, можете да обвиете цялата формула в IFERROR (да я направите първи аргумент) и да въведете каквото искате да видите в клетката вместо грешки като втори аргумент:

    =IFERROR(ArrayFormula(INDEX(B2:B27, MATCH(CONCATENATE(F2:F4), A2:A27&C2:C27&D2:D27, 0),)), "Not found")

    По-добра алтернатива на INDEX MATCH в Google Sheets - Множество VLOOKUP съвпадения

    Каквато и функция за търсене да предпочитате - VLOOKUP или INDEX MATCH - и за двете има по-добра алтернатива.

    Multiple VLOOKUP Matches е специална добавка за Google Sheets, предназначена за:

    • търсене без формули
    • търсене във всички посоки
    • търсене по множество условия за различни типове данни: текст, числа, дати, време, и т.н.
    • извличане на няколко съвпадения, колкото ви трябват (разбира се, при условие че в таблицата ви има толкова съвпадения).

    Интерфейсът е опростен, така че няма да се налага да се съмнявате дали правите всичко правилно:

    1. Изберете обхват на източника.
    2. Задаване на броя на съвпаденията и колоните, които да бъдат върнати.
    3. Прецизно настройване на условията с помощта на предварително дефинираните оператори ( съдържа, =, не е празен , между и т.н.).

    Освен това ще можете да:

    • преглед на резултата
    • да решите къде да го поставите.
    • и как: като формула или само като стойности

    Не пропускайте тази възможност да проверите добавката. Започнете да я инсталирате от Google Workspace Marketplace. На нейната страница с уроци ще бъде обяснена подробно всяка опция.

    Подготвихме и специален видеоклип с инструкции:

    Ще се видим в коментарите по-долу или в следващата статия ;)

    Майкъл Браун е отдаден технологичен ентусиаст със страст към опростяване на сложни процеси с помощта на софтуерни инструменти. С повече от десетилетие опит в технологичната индустрия, той е усъвършенствал уменията си в Microsoft Excel и Outlook, както и в Google Sheets и Docs. Блогът на Майкъл е посветен на споделянето на неговите знания и опит с други, предоставяйки лесни за следване съвети и уроци за подобряване на продуктивността и ефективността. Независимо дали сте опитен професионалист или начинаещ, блогът на Michael предлага ценни прозрения и практически съвети за извличане на максимума от тези основни софтуерни инструменти.