Как сделать поиск в Excel: функции и примеры формул

  • Поделись Этим
Michael Brown

Учебник объясняет основы Lookup в Excel, показывает сильные и слабые стороны каждой функции Excel Lookup и приводит ряд примеров, которые помогут вам решить, какую формулу lookup лучше использовать в конкретной ситуации.

Поиск определенного значения в наборе данных - одна из самых распространенных задач в Excel. И все же не существует "универсальной" формулы поиска, подходящей для всех ситуаций. Причина в том, что термин "поиск" может обозначать множество различных вещей: вы можете искать по вертикали в столбце, по горизонтали в строке или на пересечении строки и столбца, искать по одному или нескольким критериям, возвращать значениепервое найденное совпадение или несколько совпадений, поиск с учетом регистра или без учета регистра и так далее.

На этой странице вы найдете список наиболее важных функций Excel Lookup с примерами формул и подробными учебными пособиями для справки.

    Excel Lookup - основы

    Прежде чем мы погрузимся в хитросплетения формул Excel Lookup, давайте определимся с ключевыми терминами, чтобы быть уверенными, что мы всегда на одной странице.

    Поиск - поиск заданного значения в таблице данных.

    Значение поиска - значение для поиска.

    Возвращаемое значение (совпадающее значение или match) - значение в той же позиции, что и искомое значение, но в другом столбце или строке (в зависимости от того, вертикальный или горизонтальный поиск вы выполняете).

    Таблица поиска В информатике таблица поиска - это массив данных, который обычно используется для сопоставления входных значений с выходными. С точки зрения данного учебника, таблица поиска Excel - это не что иное, как диапазон ячеек, в которых вы ищете искомое значение.

    Главный стол (главная таблица) - таблица, в которую вы подтягиваете совпадающие значения.

    Ваша таблица поиска и основная таблица могут иметь различную структуру и размер, однако они всегда должны содержать по крайней мере одну таблицу общий уникальный идентификатор т.е. столбец или строка, содержащие одинаковые данные, в зависимости от того, хотите ли вы выполнить вертикальный или горизонтальный поиск.

    На следующем снимке экрана показан образец таблицы поиска, который будет использоваться во многих приведенных ниже примерах.

    Функции поиска в Excel

    Ниже приведен краткий обзор наиболее популярных формул для выполнения поиска в Excel, их основных преимуществ и недостатков.

    Функция LOOKUP

    Функция LOOKUP в Excel может выполнять простейшие типы вертикального и горизонтального поиска.

    Плюсы : Простота в использовании.

    Cons : Ограниченная функциональность, не может работать с несортированными данными (требуется сортировка столбца/строки поиска по возрастанию).

    Для получения дополнительной информации см. раздел Как использовать функцию Excel LOOKUP.

    Функция VLOOKUP

    Это улучшенная версия функции LOOKUP, специально разработанная для того. вертикальный поиск в колоннах.

    Плюсы : Относительно прост в использовании, может работать с точным и приблизительным совпадением.

    Cons : Не может смотреть налево, перестает работать, когда столбец вставляется в таблицу поиска или удаляется из нее, значение поиска не может превышать 255 символов, требует больших вычислительных мощностей на больших массивах данных.

    Для получения дополнительной информации см. учебник Excel VLOOKUP для начинающих.

    Функция HLOOKUP

    Это горизонтальный аналог VLOOKUP, который ищет значение в первой строке таблицы поиска и возвращает значение в той же позиции из другой строки.

    Плюсы : Прост в использовании, может возвращать точные и приблизительные совпадения.

    Cons : Поиск возможен только в самой верхней строке таблицы поиска, на поиск влияет вставка или удаление строк, значение поиска не должно превышать 255 символов.

    Для получения дополнительной информации см. раздел Как использовать HLOOKUP в Excel.

    СООТВЕТСТВИЕ VLOOKUP / СООТВЕТСТВИЕ HLOOKUP

    Динамическая ссылка на столбец или строку, созданная MATCH, делает эту формулу поиска Excel невосприимчивой к изменениям в наборе данных. Другими словами, с помощью MATCH функции VLOOKUP и HLOOKUP могут возвращать правильные значения независимо от того, сколько столбцов/строк было вставлено или удалено из таблицы поиска.

    Формула для вертикального поиска

    VLOOKUP( поиск_значения , таблица поиска , MATCH( имя_колонки_возврата , заголовки_колонок , 0), FALSE)

    Формула для горизонтального поиска

    HLOOKUP( поиск_значения , таблица поиска , MATCH( имя_строки_возврата , заголовки_строк , 0), FALSE)

    Плюсы : Улучшение обычных формул Hlookup и Vlookup, невосприимчивых к вставке или удалению данных.

    Cons : Не очень гибкий, требует определенной структуры данных (значение поиска, передаваемое в функцию MATCH, должно быть точно равно имени возвращаемого столбца), не может работать со значениями поиска, превышающими 255 символов.

    Для получения дополнительной информации и примеров формул см:

    • Excel Vlookup и Match
    • Excel Hlookup и Match

    OFFSET MATCH

    Более сложная, но более мощная формула поиска, свободная от многих ограничений Vlookup и Hlookup.

    Формула для V-Lookup

    OFFSET( таблица поиска , MATCH( lookup_value , OFFSET( таблица поиска , 0, n , ROWS( таблица поиска ), 1) ,0) -1, m , 1, 1)

    Где:

    • n - смещение столбца поиска, т.е. количество столбцов для перемещения от начальной точки к столбцу поиска.
    • m - смещение столбца возврата, т.е. количество столбцов для перемещения от начальной точки до столбца возврата.

    Формула для H-Lookup

    OFFSET( таблица поиска , m , MATCH( lookup_value , OFFSET( таблица поиска , n , 0, 1, СТОЛБЦЫ( таблица поиска )), 0) -1, 1, 1)

    Где:

    • n - это смещение строки поиска, т.е. количество строк, на которое нужно перейти от начальной точки к строке поиска.
    • m - это смещение строки возврата, т.е. количество строк, на которое нужно переместиться от начальной точки до строки возврата.

    Формула для поиска в матрице (по строке и столбцу)

    {=OFFSET ( начальная_точка , MATCH ( вертикальный_просмотр_значения , lookup_column , 0), MATCH ( горизонтальный_просмотр_значения , lookup_row , 0))}

    Обратите внимание, что это формула массива, которая вводится одновременным нажатием клавиш Ctrl + Shift + Enter.

    Плюсы : Позволяет выполнять левосторонний Vlookup, верхний Hlookup и двусторонний поиск (по значениям столбцов и строк), на который не влияют изменения в наборе данных.

    Cons : Сложный и трудно запоминающийся синтаксис.

    Дополнительную информацию и примеры формул см. в разделе: Использование функции OFFSET в Excel

    ИНДЕКС МАТЧА

    Это лучший способ вертикального или горизонтального поиска в Excel, который может заменить большинство вышеперечисленных формул. Формула Index Match - это мое личное предпочтение, и я использую ее почти для всех своих поисков в Excel.

    Формула для V-Lookup

    ИНДЕКС ( возвратный_столбец , MATCH ( поиск_значения , lookup_column , 0))

    Формула для H-Lookup

    ИНДЕКС ( return_row , MATCH ( lookup_value , lookup_row , 0))

    Формула для поиска матрицы

    Расширение классической формулы Index Match для возврата значения на пересечении определенного столбца и строки:

    ИНДЕКС ( таблица поиска , MATCH ( вертикальный_просмотр_значения , lookup_column , 0), MATCH ( горизонтальный_просмотр_значения , lookup_row , 0))

    Cons : Только одно - вам нужно запомнить синтаксис формулы.

    Плюсы : Самая универсальная формула Lookup в Excel, превосходящая по многим параметрам функции Vlookup, Hlookup и Lookup:

    • Он может выполнять поиск слева и сверху.
    • Позволяет безопасно расширять или сворачивать таблицу поиска, вставляя или удаляя столбцы и строки.
    • Нет ограничений на размер значения поиска.
    • Работает быстрее. Поскольку формула Index Match ссылается на столбцы/строки, а не на всю таблицу, она требует меньше вычислительной мощности и не замедляет работу Excel.

    Для получения дополнительной информации, пожалуйста, ознакомьтесь:

    • INDEX MATCH как лучшая альтернатива VLOOKUP
    • Формула INDEX MATCH MATCH для двухмерного поиска

    Сравнительная таблица Excel Lookup

    Как вы видите, не все формулы Excel Lookup эквивалентны, некоторые из них могут работать с несколькими различными видами поиска, а другие могут использоваться только в определенной ситуации. В таблице ниже описаны возможности каждой формулы Lookup в Excel.

    Формула Вертикальный поиск Левый поиск Горизонтальный поиск Верхний поиск Матричный поиск Позволяет вставлять/удалять данные
    Поиск
    Vlookup
    Hlookup
    Vlookup Match
    Hlookup Match
    Совпадение смещения
    Смещение Совпадение Совпадение
    Индексное соответствие
    Индекс Соответствие Соответствие

    Примеры формул поиска в Excel

    Первый шаг в решении вопроса о том, какую формулу использовать в конкретной ситуации, - это определение типа поиска, который вы хотите выполнить. Ниже приведены примеры формул для наиболее популярных типов поиска:

      Вертикальный поиск в колонках

      Вертикальный поиск или Vlookup - это процесс нахождения искомого значения в одном столбце и возврата значения в той же строке из другого столбца. Vlookup в Excel может быть выполнен различными способами, включая:

      Функция VLOOKUP

      Если значения поиска находятся в левой колонке таблицы, и вы не планируете вносить структурные изменения в набор данных (ни добавлять, ни удалять столбцы), вы можете смело использовать обычную формулу Vlookup:

      =VLOOKUP(G2, $A$2:$E$6, 5, FALSE)

      Где G2 - значение поиска, A2:E6 в таблице поиска, а E - возвращаемый столбец.

      VLOOKUP MATCH

      Если вы работаете с "переменной" таблицей поиска Excel, в которой столбцы могут быть вставлены и удалены в любое время, сделайте вашу формулу Vlookup невосприимчивой к этим изменениям, встроив функцию Match, которая создает динамическую ссылку на столбец вместо "жестко закодированного" номера индекса:

      =VLOOKUP(F2,$A$1:$D$6, MATCH($G$1,$A$1:$D$1, 0), FALSE)

      INDEX MATCH - поиск слева

      Это моя любимая формула, которая легко справляется с поиском справа налево и работает безупречно независимо от того, сколько столбцов вы добавляете или удаляете.

      Например, чтобы найти в столбце B значение в H2 и вернуть совпадение из столбца F, используйте эту формулу:

      =INDEX($F$2:$F$6,(MATCH(H2,$B$2:$B$6,0)))

      Примечание. Если вы планируете использовать формулу Vlookup в более чем одной ячейке, вы всегда должны заблокировать ссылку на таблицу поиска с помощью знака $ (абсолютная ссылка на ячейку), чтобы формула правильно копировалась в другие ячейки.

      Горизонтальный поиск в рядах

      Горизонтальный поиск - это "транспонированная" версия вертикального поиска, которая ищет в горизонтально расположенном наборе данных. Другими словами, он ищет искомое значение в одной строке, а возвращает значение в той же позиции из другой строки.

      Предположим, что значение поиска находится в B9, таблица поиска - B1:F5, и вы хотите вернуть совпадающее значение из строки 5, используйте одну из следующих формул:

      Функция HLOOKUP

      Можно искать только по верхний ряд в вашем наборе данных.

      =HLOOKUP(B8, $B$1:$F$5, 5, FALSE)

      HLOOKUP MATCH

      Как и чистый Hlookup, эта формула может искать только в самой верхней строке, но позволяет вам безопасно вставлять или удалять строки в таблице поиска.

      =HLOOKUP(B8, $B$1:$F$5, MATCH($A$9, $A$1:$A$5, 0), FALSE)

      Где A1:A5 - заголовки строк, а A9 - имя строки, из которой вы хотите вернуть совпадения.

      ИНДЕКС МАТЧА

      Можно искать в любом ряду и не имеет ни одного из ограничений, присущих вышеприведенным формулам.

      =INDEX($B$5:$F$5,(MATCH(B8,$B$1:$F$1,0)))

      Двумерный поиск (на основе значений строк и столбцов)

      Двумерный поиск (он же матричный поиск , двойной поиск или Двусторонний поиск ) возвращает значение на основе совпадений в обеих строках и столбцах. Другими словами, формула двумерного поиска ищет значение на пересечении заданных строки и столбца.

      Если предположить, что ваша таблица поиска имеет вид A1:E6, ячейка H2 содержит значение для сопоставления в строках, а H3 - в столбцах, то следующие формулы будут работать отлично:

      Формула ИНДЕКС МАТЧ МАТЧ :

      =INDEX($A$1:$E$6, MATCH(H2,$A$1:$A$6,0), MATCH(H3,$A$1:$E$1,0))

      Формула OFFSET MATCH MATCH :

      =OFFSET($A$1,MATCH(H2,$A$2:$A$6,0),MATCH(H3,$B$1:$E$1,0))

      Помимо приведенных выше формул, существует множество других способов выполнения матричного поиска в Excel, и вы можете найти полную информацию в статье Как выполнить двусторонний поиск в Excel.

      Трехмерный поиск

      Трехмерный поиск означает поиск по 3 различным значениям поиска. В приведенном ниже наборе данных, предположим, вы хотите найти определенный год (H2), затем определенное имя в данных этого года (H3), а затем вернуть значение для определенного месяца (H4).

      Задача может быть решена с помощью следующей формулы массива (не забудьте нажать Ctrl + Shift + Enter для ее правильного завершения):

      =INDEX($A$1:$E$12,MIN(IF((ROW($A$1:$A$12)>MATCH(H2,$A$1:$A$12,0))*($A$1:$A$12=H3),ROW($A$1:$A$12),"")),MATCH(H4,$A$1:$E$1,0)))

      Поиск с несколькими критериями

      Чтобы иметь возможность оценивать несколько критериев, нам нужно изменить классическую формулу Index Match так, чтобы она превратилась в формулу массива:

      ИНДЕКС( таблица поиска , MATCH(1, ( поиск_значения1 = lookup_column1 ) * ( поиск_значения2 = lookup_column2 )*..., 0), return_column_number )

      Имея таблицу поиска, расположенную в A1:C11, давайте найдем совпадение по двум критериям: найдите в столбце A значение в ячейке F1, а в столбце B - значение в ячейке F2:

      =INDEX($A$1:$C$11, MATCH(1, (F1=$A$1:$A$11) * (F2=$B$1:$B$11),0), 3)

      Как обычно, вы нажимаете Ctrl + Shift + Enter, чтобы формула была оценена как формула массива.

      Подробное объяснение логики работы формулы смотрите в разделе ИНДЕКСНОЕ СРАВНЕНИЕ для поиска по нескольким критериям.

      Поиск для возврата нескольких значений

      Какую бы функцию Excel Lookup вы ни использовали (LOOKUP, VLOOKUP или HLOOKUP), она может вернуть только одно совпадение. Чтобы получить все найденные совпадения, вам придется использовать 6 различных функций, объединенных в формулу массива:

      IFERROR(INDEX( диапазон возврата , SMALL(IF( lookup_value = диапазон поиска , ROW( диапазон возврата )- m ,""), ROW() -. n )),"")

      Где:

      • m это номер строки первой ячейки в возвращаемом диапазоне минус 1.
      • n это номер строки первой ячейки формулы минус 1.

      Если значение поиска находится в ячейке E2, диапазон поиска - в A2:A11, диапазон возврата - в B2:B11, а первая ячейка формулы - в строке 2, ваша формула поиска принимает следующий вид:

      =IFERROR(INDEX($B$2:$B$11, SMALL(IF($E$2 =$A$2:$A$11, ROW($B$2:$B$11 )- 1,""), ROW() - 1 )),"")

      Чтобы формула возвращала несколько совпадений, введите ее в первую ячейку (F2), нажмите Ctrl + Shift + Enter , а затем скопируйте формулу в другие ячейки столбца.

      Подробное объяснение приведенной выше формулы и других способов возврата нескольких значений см. в статье Как с помощью Vlookup вернуть несколько результатов.

      Вложенный поиск (из 2 таблиц поиска)

      В ситуациях, когда ваша основная таблица и таблица поиска, из которой вы хотите получить данные, не имеют общего столбца, вы можете использовать дополнительную таблицу поиска для установления соответствий, например, так:

      Чтобы получить значения из Сумма колонка в Lookup_table2 , вы используете следующую формулу:

      =VLOOKUP(VLOOKUP(A2, Lookup_table1!$A$1:$B$6, 2, FALSE), Lookup_table2!$A$1:$B$6, 2, FALSE)

      Как показано на скриншоте ниже, наша вложенная формула поиска работает идеально:

      Последовательный просмотр из нескольких листов

      Для последовательного выполнения Vlookups на основе того, удался или не удался предыдущий поиск, используйте вложенные функции IFERROR вместе с VLOOKUP для оценки нескольких условий по очереди:

      IFERROR(VLOOKUP( ... ), IFERROR(VLOOKUP( ... ), IFERROR(VLOOKUP( ... ), "Не найдено")))

      Если первый Vlookup не работает, IFERROR фиксирует ошибку и запускает другой Vlookup. Если второй Vlookup тоже ничего не находит, второй IFERROR фиксирует ошибку и запускает третий Vlookup, и так далее. Если все Vlookup не работают, последний IFERROR возвращает "не найдено" или любое другое сообщение, которое вы передадите в формулу.

      В качестве примера попробуем взять сумму из 3 разных листов:

      =IFERROR(VLOOKUP(B1,A6:B9,2,0), IFERROR(VLOOKUP(B1,D6:E9,2,0), IFERROR(VLOOKUP(B1,G6:H9,2,0), "Не найдено"))))

      Результат будет выглядеть примерно так:

      Для получения дополнительной информации см. раздел Как использовать вложенные функции IFERROR в Excel.

      Поиск с учетом регистра

      Как вы, вероятно, знаете, все функции поиска Excel по своей природе нечувствительны к регистру. Чтобы заставить формулу поиска различать текст в нижнем и верхнем регистре, используйте функцию LOOKUP или INDEX MATCH в сочетании с функцией EXACT. Я лично выбираю INDEX MATCH, поскольку она не требует сортировки значений в колонке поиска, как это делает функция LOOKUP, может работать как слева направо, так и справа налево.и поиска справа налево, и отлично работает для всех типов данных.

      ИНДЕКС( возвратный_столбец , MATCH(TRUE, EXACT( lookup_column , lookup_value ),0))

      Так как G2 - это значение поиска, A - столбец для поиска, а E - столбец для возврата совпадений, наша формула поиска с учетом регистра выглядит следующим образом:

      =INDEX($E$2:$E$6, MATCH(TRUE, EXACT($A$2:$A$6,G2),0))

      Поскольку это формула массива не забудьте нажать Ctrl + Shift + Enter, чтобы завершить его правильно.

      Дополнительные примеры формул см. в разделе Как выполнить поиск с учетом регистра в Excel.

      Поиск частичного совпадения строк

      Поиск по частичному совпадению - одна из самых сложных задач в Excel, для которой не существует универсального решения. Выбор формулы зависит от того, какие различия существуют между вашими значениями поиска и значениями в столбце, в котором ведется поиск. В большинстве случаев вы используете функцию LEFT, RIGHT или MID для извлечения общей части значений, а затем подставляете эту часть в формулу lookup_value аргумент функции Vlookup, как это сделано в следующей формуле:

      =VLOOKUP(RIGHT(D2,4), $A$2:$B$6, 2, FALSE)

      Где D2 - значение поиска, A2:B6 - таблица поиска, а 2 - номер индекса столбца, из которого нужно вернуть совпадения.

      О других способах выполнения поиска по частичному совпадению в Excel см. в разделе Как объединить два рабочих листа по частичному совпадению.

      Вот как используются функции Lookup в Excel. Для более детального изучения формул, рассмотренных в этом руководстве, вы можете скачать наши примеры формул Excel Lookup.

      Способ поиска в Excel без формул

      Само собой разумеется, что поиск в Excel - задача не из простых. Если вы делаете первые шаги в освоении Excel, формулы поиска могут показаться вам довольно запутанными и сложными для понимания. Но, пожалуйста, не отчаивайтесь, эти навыки не приходят сами собой к большинству пользователей!

      Чтобы облегчить задачу новичкам, мы создали специальный инструмент Merge Tables Wizard, который может искать, сопоставлять и объединять таблицы без единой формулы. Кроме того, он предоставляет ряд действительно уникальных опций, которыми могут воспользоваться даже опытные пользователи Excel:

      • Поиск по многочисленные критерии т.е. использовать один или несколько столбцов в качестве уникального идентификатора (идентификаторов).
      • Обновление значения в существующих колонках и добавить новый колонки из таблицы поиска.
      • Возврат множественные совпадения При использовании в комбинации с Мастером объединения строк, он может даже возвращать несколько результатов в одной ячейке, разделенных запятыми или иным образом (пример можно найти здесь).
      • И многое другое.

      Работа с мастером слияния таблиц проста и интуитивно понятна. Все, что вам нужно сделать, это:

      1. Выберите вашу основную таблицу, в которую вы хотите извлечь совпадающие значения.
      2. Выберите таблицу поиска, из которой будут взяты совпадения.
      3. Определите один или несколько общих столбцов.
      4. Выберите столбцы, которые будут обновлены или/и добавлены в конец таблицы.
      5. По желанию выберите один или несколько дополнительных параметров объединения.
      6. Нажмите Отделка и через мгновение у вас будет результат!

      Если вам интересно попробовать надстройку на собственных листах, вы можете загрузить пробную версию нашего пакета Ultimate Suite, который включает все наши инструменты экономии времени для Excel (всего 70+ инструментов и 300+ функций!).

      Доступные загрузки

      Примеры формул Excel Lookup (файл.xlsx)

      Ultimate Suite 14-дневная полнофункциональная версия (файл .exe)

      Майкл Браун — увлеченный технологический энтузиаст, стремящийся упростить сложные процессы с помощью программных инструментов. Имея более чем десятилетний опыт работы в технологической отрасли, он отточил свои навыки в Microsoft Excel и Outlook, а также в Google Sheets и Docs. Блог Майкла посвящен тому, чтобы делиться своими знаниями и опытом с другими, предоставляя простые советы и учебные пособия для повышения производительности и эффективности. Являетесь ли вы опытным профессионалом или новичком, в блоге Майкла вы найдете ценную информацию и практические советы, которые помогут вам максимально эффективно использовать эти важные программные инструменты.