Оглавление
Когда вам нужно найти в листе данные, соответствующие определенной ключевой записи, обычно обращаются к VLOOKUP в Google Sheets. Но вот так: VLOOKUP практически сразу накладывает на вас ограничения. Поэтому лучше увеличить ресурсы для решения задачи, изучив INDEX MATCH.
INDEX MATCH в Google Sheets - это комбинация двух функций: INDEX и MATCH. При использовании в тандеме они выступают в качестве лучшей альтернативы VLOOKUP в Google Sheets. Давайте узнаем об их возможностях вместе в этой статье блога. Но сначала я хотел бы провести краткий экскурс по их роли в электронных таблицах.
Функция МАТЧ в Google Sheets
Я бы хотел начать с Google Sheets MATCH, потому что он очень прост. Он сканирует ваши данные в поисках определенного значения и возвращает его позицию:
=MATCH(search_key, range, [search_type])- ключ_поиска это та запись, которую вы ищете. Требуется.
- ассортимент это либо строка, либо столбец, в котором нужно искать. Требуется.
Примечание. MATCH принимает только одномерные массивы: либо строки, либо столбцы.
- тип_поиска является необязательным и определяет, должно ли совпадение быть точным или приблизительным. Если он опущен, то по умолчанию он равен 1:
- 1 означает, что диапазон сортируется по возрастанию. Функция получает наибольшее значение, меньшее или равное вашему ключ_поиска .
- 0 заставит функцию искать точное совпадение в случае, если ваш диапазон не отсортирован.
- -1 указывает на то, что записи ранжируются с помощью сортировки по убыванию. В этом случае функция получает наименьшее значение, большее или равное вашему ключ_поиска .
Вот пример: чтобы получить позицию определенной ягоды в списке всех ягод, мне нужна следующая формула MATCH в моих Google Sheets:
=MATCH("Черника", A1:A10, 0)
Функция ИНДЕКС в Google Sheets
В то время как MATCH показывает, где искать значение (его расположение в диапазоне), функция INDEX в Google Sheets извлекает само значение на основе смещения строки и столбца:
=INDEX(reference, [row], [column])- ссылка это диапазон, в котором нужно искать. Требуется.
- строка число строк, отстоящих от самой первой ячейки диапазона. Необязательно, 0, если не указано.
- колонка так же, как строка , - количество столбцов смещения. Также необязательно, также 0, если опущено.
Если указать оба необязательных аргумента (строку и столбец), ИНДЕКС Google Sheets вернет запись из целевой ячейки:
=INDEX(A1:C10, 7, 1)
Пропустите один из этих аргументов, и функция получит всю строку или столбец соответственно:
=INDEX(A1:C10, 7)
Как использовать INDEX MATCH в Google Sheets - примеры формул
Когда INDEX и MATCH используются вместе в электронных таблицах, они проявляют себя с самой лучшей стороны. Они могут абсолютно точно заменить VLOOKUP в Google Sheets и получить нужную запись из таблицы на основе ключевого значения.
Постройте свою первую формулу INDEX MATCH для Google Sheets
Предположим, вы хотите получить информацию о запасах клюквы из той же таблицы, которую я использовал выше. Я только поменял местами столбцы B и C (вы узнаете почему чуть позже).
- Теперь все ягоды перечислены в столбце C. Функция Google Sheets MATCH поможет вам найти точную строку клюквы: 8
=MATCH("Клюква", C1:C10, 0)
- Положите всю эту формулу MATCH на строка аргумент в функции INDEX:
=INDEX(A1:C10, MATCH("Клюква", C1:C10, 0))
В этом случае возвращается весь ряд с клюквой.
- Но поскольку вам нужна только информация о запасах, укажите также номер колонки поиска: 3
=INDEX(A1:C10, MATCH("Клюква", C1:C10,0), 2)
- Вуаля!
- Вы можете пойти дальше и отказаться от последнего столбцового индикатора ( 2 ). Он вам вообще не понадобится, если вы будете использовать только колонку поиска ( B1:B10 ), а не всей таблицы ( A1:C10 ) в качестве первого аргумента:
=INDEX(B1:B10, MATCH("Клюква", C1:C10, 0))
Совет. Более удобным способом проверки наличия различных ягод было бы размещение их в выпадающем списке ( E2 ) и направьте вашу функцию MATCH на ячейку с этим списком:
=INDEX(B1:B10, MATCH(E2, C1:C10, 0))
Как только вы выберете ягоду, соответствующее значение изменится соответственно:
Смотрите также: Как фильтровать и сортировать ячейки по цвету в Excel
Почему INDEX MATCH в Google Sheets лучше, чем VLOOKUP
Вы уже знаете, что INDEX MATCH в Google Sheets ищет ваше значение в таблице и возвращает другую связанную запись из той же строки. И вы знаете, что VLOOKUP в Google Sheets делает то же самое. Так зачем беспокоиться?
Дело в том, что, ИНДЕКС МАТЧА есть некоторые основные преимущества над VLOOKUP:
- Возможен поиск по левому краю Я поменял местами столбцы, чтобы проиллюстрировать это: функция INDEX MATCH в Google Sheets может и ищет слева от столбца поиска. VLOOKUP всегда ищет в самом первом столбце диапазона и ищет совпадения справа от него - иначе он получает только ошибки #N/A:
- Отсутствие путаницы в ссылках при добавлении новых колонок и перемещении существующих. Если вы добавляете или перемещаете столбцы, INDEX MATCH отразит изменения автоматически, не вмешиваясь в результат. Поскольку вы используете ссылки на столбцы, они мгновенно корректируются Google Sheets:
Попытайтесь сделать это с помощью VLOOKUP: он требует номер заказа, а не ссылки на ячейки для столбца поиска. Таким образом, вы просто получите неверное значение, потому что на его месте находится другой столбец - столбец 2 в моем примере:
- Рассматривает текстовый случай при необходимости (подробнее об этом ниже).
- Может использоваться для вертикального поиска по нескольким критериям.
Я предлагаю вам подробно рассмотреть два последних пункта ниже.
V-lookup с учетом регистра с помощью 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))
Давайте посмотрим, что происходит в этой формуле:
- FIND сканирует столбец C ( C2:C19 ) для записи от E2 ( вишня ) с учетом регистра букв. Найдя ячейку, формула "помечает" ее цифрой - 1 .
- MATCH ищет этот знак - 1 - в той же колонке ( C ) и передает номер его строки в INDEX.
- INDEX спускается к этой строке в столбце B ( B2:B19 ) и передает вам требуемую запись.
- Когда вы закончите построение формулы, нажмите 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)))
Google Sheets INDEX MATCH с несколькими критериями
Что если есть несколько условий, на основании которых вы хотите получить запись?
Давайте проверим цену на вишня который продается в Ведра из полипропилена и уже истекающий :
Я расположил все критерии в выпадающих списках в столбце F. И именно Google Sheets INDEX MATCH поддерживает множественные критерии, а не VLOOKUP. Вот формула, которую вам нужно будет использовать:
=ArrayFormula(INDEX(B2:B24, MATCH(CONCATENATE(F2:F4), A2:A24&C2:C24&D2:D24, 0),))
Не паникуйте! :) На самом деле его логика довольно проста:
- CONCATENATE(F2:F4) объединяет все три записи из ячеек с критериями в одну строку следующим образом:
CherryPP bucketRunning out
Это ключ_поиска для MATCH, или, другими словами, то, что вы ищете в таблице.
- A2:A24&C2:C24&D2:D24 составлять ассортимент для функции MATCH. Поскольку все три критерия находятся в трех отдельных столбцах, таким образом вы как бы объединяете их:
ВишняКартонный лотокВ наличии
ВишняПленочная упаковкаНет в наличии
CherryPP bucketRunning out
и т.д.
- Последний аргумент в MATCH - 0 - позволяет найти точное соответствие для CherryPP bucketRunning out среди всех этих рядов объединенных столбцов. Как видите, он находится в 3-м ряду.
- А затем INDEX делает свое дело: он извлекает запись из 3-й строки столбца B.
- ArrayFormula используется для того, чтобы другие функции могли работать с массивами.
Совет. Если ваша формула не найдет совпадения, она вернет ошибку. Чтобы избежать этого, вы можете обернуть всю формулу в IFERROR (сделать его первым аргументом) и ввести в качестве второго аргумента то, что вы хотите видеть в ячейке вместо ошибки:
=IFERROR(ArrayFormula(INDEX(B2:B27, MATCH(CONCATENATE(F2:F4), A2:A27&C2:C27&D2:D27, 0),)), "Не найдено")
Лучшая альтернатива INDEX MATCH в Google Sheets - множественные совпадения VLOOKUP
Какую бы функцию поиска вы ни предпочитали, VLOOKUP или INDEX MATCH, им обоим есть лучшая альтернатива.
Multiple VLOOKUP Matches - это специальная надстройка для Google Sheets, предназначенная для:
- поиск без формул
- поиск во всех направлениях
- поиск по нескольким условиям для различных типов данных: текст, числа, даты, время, и т.д.
- получить несколько спичек, столько, сколько вам нужно (конечно, при условии, что в вашей таблице их столько же)
Интерфейс понятен, поэтому вам не придется сомневаться, все ли вы делаете правильно:
- Выберите диапазон источников.
- Задайте количество возвращаемых совпадений и столбцов.
- Точная настройка условий с помощью предопределенных операторов ( содержит, =, не пустой , между , и т.д.).
Вы также сможете:
- предварительный просмотр результата
- решить, где его разместить
- и как: в виде формулы или просто значения
Не упустите возможность проверить это дополнение. Установите его из Google Workspace Marketplace. На странице руководства подробно описана каждая опция.
Мы также подготовили специальный обучающий видеоролик:
Увидимся в комментариях ниже или в следующей статье ;)