Перейти к содержимому

Kutools для Office — один пакет. Пять инструментов. Выполняйте больше.

20+ примеров использования VLOOKUP для начинающих и продвинутых пользователей Excel

Author Xiaoyang Last modified

Функция VLOOKUP — одна из самых востребованных в Excel. В этом руководстве вы узнаете, как применять VLOOKUP в Excel на практике: пошагово рассмотрим десятки базовых и продвинутых примеров.


Введение в функцию VLOOKUP — синтаксис и аргументы

В Excel функция VLOOKUP является мощным инструментом для большинства пользователей: она позволяет искать значение в самом левом столбце диапазона данных и возвращать соответствующее значение из указанного вами столбца в той же строке, как показано на скриншоте ниже.
Syntax and Arguments of vlookup function

Синтаксис функции VLOOKUP:

=VLOOKUP (lookup_value, table_array, col_index_num, [range_lookup])

Аргументы:

"Lookup_value" (обязательный): Значение, которое вы хотите найти. Это может быть число, дата, текст или ссылка на ячейку. Оно должно находиться в первом столбце диапазона table_array. 

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

"Col_index_num" (обязательный): Номер столбца, из которого будет возвращено значение. Отсчет начинается с1 для самого левого столбца в table_array.

"Range_lookup" (необязательный): Логическое значение, определяющее, будет ли функция VLOOKUP искать точное или приблизительное совпадение.

  • "Приблизительное совпадение" –1 / TRUE / не указано (по умолчанию): Если точное совпадение не найдено, формула ищет ближайшее — наибольшее значение, которое меньше искомого.
  • "Точное совпадение" –0 / FALSE: Используется для поиска значения, точно равного lookup_value. Если совпадение не найдено, возвращается ошибка #N/A.

Примечания к функции:

  • Функция VLOOKUP ищет значение только слева направо.
  • Функция VLOOKUP не учитывает регистр символов.
  • Если по искомому значению найдено несколько совпадений, функция VLOOKUP вернет только первое из них.

Базовые примеры VLOOKUP

В этом разделе рассмотрим несколько часто используемых формул VLOOKUP.

2.1 Точное и приблизительное совпадение в VLOOKUP

 2.1.1 Точное совпадение в VLOOKUP

Обычно, чтобы найти точное совпадение с помощью функции VLOOKUP, в качестве последнего аргумента достаточно указать FALSE.

Например, чтобы получить соответствующие оценки по математике на основе конкретных ID, выполните следующие действия:
 sample data

Скопируйте и вставьте приведённую ниже формулу в пустую ячейку (например, G2) и нажмите клавишу "Enter", чтобы получить результат:

=VLOOKUP(F2,$A$2:$D$7,3,FALSE)

 apply the vlookup formula

Примечание: В приведённой выше формуле используются четыре аргумента:

  • "F2" — ячейка, содержащая значение C1005, которое вы ищете;
  • "A2:D7" — table_array, в котором выполняется поиск;
  • "3" — номер столбца, из которого возвращается совпавшее значение; (Как только функция находит ID — C1005, она переходит к третьему столбцу в table_array и возвращает значение из той же строки, что и ID — C1005.)
  • "FALSE" означает точное совпадение.

Как работает формула VLOOKUP?

Сначала она ищет ID — C1005 в самом левом столбце таблицы, двигаясь сверху вниз, и находит значение в ячейке A6.
  It goes from top to bottom and finds the value in specific cell

Как только значение найдено, функция переходит вправо к третьему столбцу и извлекает из него значение.
it goes to the right in the third column and extracts the value in it

В результате вы получите следующий результат, как показано на скриншоте:
get the result

Примечание: Если искомое значение не найдено в самом левом столбце, возвращается ошибка #N/A.
🤖 Kutools AI Aide: Революционизируйте анализ данных на основе: Интеллектуального Выполнения   |  Генерация Кода  |  Создание Пользовательских Формул  |  Анализ Данных и Генерация Диаграмм  |  Вызов Функций Kutools
Популярные функции: Найти, Выделить или Отметить Дубликаты   |  Удалить Пустые Строки   |  Объединить Столбцы или Ячейки без Потери Данных   |   Округлить без Формулы ...
Супер Поиск: VLookup с Множественными Критериями  |  VLookup с Множественными Значениями  |  Многолистовой Поиск  |  Распознавание Нечетких Соответствий ...
Расширенный Раскрывающийся Список: Быстро Создать Раскрывающийся Список   |  Зависимый Раскрывающийся Список   |  Раскрывающийся Список с Множественным Выбором ...
Управление Столбцами: Добавить Определенное Число Столбцов  |  Переместить Столбцы   |  Показать Скрытые Столбцы  |  Сравнить Диапазоны и Столбцы ...
Основные функции: Сетка Фокусировки   |  Дизайн Листа   |   Улучшенная Строка Формул   |  Управление Книгой и Листами  |  Библиотека Автотекста   |  Выбор Даты  |  Объединить Данные   |  Шифровать/Расшифровать Ячейки    Отправить Электронные Письма по Списку   |  Супер Фильтр   |   Специальный Фильтр (по жирному/курсиву...) ...
Топ-15 наборов инструментов12 Текстовых Инструментов (Добавить Текст, Удалить Символы, ...)   |   50+ Типов Диаграмм (Диаграмма Ганта, ...)   |   40+ Практичных Формул (Расчет Возраста на Основе Даты Рождения, ...)   |   19 Инструментов Вставки (Вставить QR-код, Вставить Изображение из Пути, ...)   |   12 Инструментов Преобразования (Преобразовать в Слова, Конвертация Валюты, ...)   |   7 Инструментов Объединения и Разделения (Расширенное Объединение Строк, Разделить Ячейки, ...)   |   Многое Другое...

Kutools для Excel имеет более 300 функций, гарантируя, что то, что вам нужно, находится всего в одном клике...

 
 2.1.2 Приблизительное совпадение в VLOOKUP

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

Например, если у вас есть следующий диапазон данных, а указанные заказы отсутствуют в столбце Orders, как получить ближайшую скидку из столбца B?
Do an approximate match VLOOKUP

Шаг1: Примените формулу VLOOKUP и протяните её в другие ячейки

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

=VLOOKUP(D2,$A$2:$B$9,2,TRUE)

Результат:

Теперь вы получите приблизительные совпадения на основе заданных значений, смотрите скриншот:
Apply the VLOOKUP formula and fill it to other cells

Примечания:

  • В приведённой выше формуле:
    • "D2" — значение, для которого нужно вернуть соответствующую информацию;
    • "A2:B9" — диапазон данных;
    • "2" — номер столбца, из которого возвращается совпавшее значение;
    • "TRUE" означает приблизительное совпадение.
  • Приблизительное совпадение вернет наибольшее значение, которое меньше вашего искомого значения, если точное совпадение не найдено.
  • Чтобы использовать функцию VLOOKUP для поиска приблизительного совпадения, обязательно отсортируйте самый левый столбец диапазона данных по возрастанию, иначе результат будет неверным.

2.2 Как сделать VLOOKUP с учетом регистра в Excel

По умолчанию функция VLOOKUP не различает регистр, то есть воспринимает строчные и прописные буквы одинаково. Иногда требуется выполнить поиск с учетом регистра, но стандартная VLOOKUP не справляется с этой задачей. В таком случае используйте альтернативные функции, например, INDEX и MATCH вместе с EXACT, либо LOOKUP и EXACT.

Например, у меня есть диапазон данных, где столбец ID содержит текст как в верхнем, так и в нижнем регистре. Теперь нужно вернуть соответствующую оценку по математике для заданного ID.
Do a case sensitive VLOOKUP

Шаг1: Примените любую из формул и протяните её в другие ячейки

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

Формула1: После вставки формулы нажмите клавиши "Ctrl" + "Shift" + "Enter".

=INDEX($C$2:$C$10,MATCH(TRUE,EXACT(F2,$A$2:$A$10),0))

Формула2: После вставки формулы нажмите клавишу "Enter".

=LOOKUP(2,1/EXACT(F2,$A$2:$A$10),$C$2:$C$10)

Результат:

Теперь вы получите нужные результаты. Смотрите скриншот:
Apply any one formula and fill it to other cells

Примечания:

  • В приведённой выше формуле:
    • "A2:A10" — столбец, в котором ищутся конкретные значения;
    • "F2" — искомое значение;
    • "C2:C10" — столбец, из которого возвращается результат.
  • Если найдено несколько совпадений, эта формула всегда возвращает последнее.

2.3 VLOOKUP значений справа налево в Excel

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

Нажмите, чтобы узнать подробные пошаговые инструкции по этой задаче…

VLOOKUP values from right to left


2.4 VLOOKUP второго, n-го или последнего совпадения в Excel

Обычно, если при использовании функции VLOOKUP найдено несколько совпадений, возвращается только первая запись. В этом разделе расскажем, как получить второе, n-е или последнее совпадение в диапазоне данных.

 2.4.1 VLOOKUP и возврат второго или n-го совпадения

Допустим, у вас есть список имён в столбце A и купленные ими курсы в столбце B. Теперь вы хотите найти второй или n-й курс, приобретённый конкретным клиентом. Смотрите скриншот:
VLOOKUP and return the second or nth matching value

Здесь функция VLOOKUP не решит задачу напрямую. Но вы можете использовать функцию INDEX как альтернативу.

Шаг1: Примените формулу и протяните её в другие ячейки

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

=INDEX($B$2:$B$14,SMALL(IF(E2=$A$2:$A$14,ROW($A$2:$A$14)-ROW($A$2)+1),2))

Результат:

Теперь все вторые совпадения по заданным именам отображаются сразу.
Apply and fill the formula to other cells

Примечание: В приведённой выше формуле:

  • "A2:A14" — диапазон всех значений для поиска;
  • "B2:B14" — диапазон совпадающих значений, которые нужно вернуть;
  • "E2" — искомое значение;
  • "2" — это второе совпадение, которое вы хотите получить; чтобы вернуть третье совпадение, просто замените на3.
 2.4.2 VLOOKUP и возврат последнего совпадения

Если вы хотите выполнить VLOOKUP и вернуть последнее совпадение, как показано на скриншоте ниже, этот урок VLOOKUP And Return The Last Matching Value поможет вам подробно получить последнее совпадение.

VLOOKUP and return the last matching value


2.5 VLOOKUP совпадающих значений между двумя заданными значениями или датами

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

 2.5.1 VLOOKUP совпадающих значений между двумя заданными значениями или датами с помощью формулы

Шаг1: Подготовьте данные и примените следующую формулу

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

=LOOKUP(2,1/($A$2:$A$6<=E2)/($B$2:$B$6>=E2),$C$2:$C$6)

Результат:

Теперь вы получите все совпавшие записи по заданному значению, смотрите скриншот:
Arrange the data and apply a formula

Примечания:

  • В приведённой выше формуле:
    • "A2:A6" — диапазон меньших значений;
    • "B2:B6" — диапазон больших чисел;
    • "E2" — искомое значение, для которого нужно получить соответствующее значение;
    • "C2:C6" — столбец, из которого возвращается соответствующее значение.
  • Эта формула также подходит для поиска совпадений между двумя датами, как показано на скриншоте ниже:
    this formula also can extract matched values between two dates
 2.5.2 VLOOKUP совпадающих значений между двумя заданными значениями или датами с помощью удобной функции

Если вам сложно запомнить и понять приведённую выше формулу, здесь я расскажу об удобном инструменте — "Kutools для Excel". С помощью функции "Поиск данных между двумя значениями" вы легко сможете вернуть соответствующий элемент по конкретному значению или дате между двумя числами или датами.

  1. Нажмите "Kutools" > "Супер ПОИСК" > "Поиск данных между двумя значениями", чтобы включить эту функцию.
  2. Затем укажите параметры в диалоговом окне в зависимости от ваших данных.
Примечание: Для использования этой функции скачайте Kutools для Excel с30-дневным бесплатным пробным периодом.

VLOOKUP matching values between two given values or dates by kutools

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

2.6 Использование подстановочных знаков для частичных совпадений в функции VLOOKUP

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

Допустим, у меня есть диапазон данных, как показано на скриншоте ниже, и теперь я хочу получить оценку по имени (не по полному имени). Как решить эту задачу в Excel?
VLOOKUP partial matches

Шаг1: Примените формулу и протяните её в другие ячейки

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

=VLOOKUP(E2&"*", $A$2:$C$11, 3, FALSE)

Результат:

Все совпавшие оценки возвращены, как показано на скриншоте ниже:
Apply and fill the formula to other cells

Примечание: В приведённой выше формуле:

  • "E2*" — критерий для частичного совпадения. Это означает, что ищется любое значение, начинающееся с содержимого ячейки E2. (Подстановочный знак "*" означает любой символ или последовательность символов)
  • "A2:C11" — диапазон данных, в котором ищется совпавшее значение;
  • "3" — возврат совпавшего значения из третьего столбца диапазона;
  • "False" — точное совпадение. (При использовании подстановочных знаков последний аргумент функции должен быть FALSE или0 для включения режима точного совпадения в VLOOKUP.)
Советы:
  • Чтобы найти и вернуть совпавшие значения, заканчивающиеся на определённое значение, поставьте подстановочный знак "*" перед значением. Используйте такую формулу:
  • =VLOOKUP("*"&E2, $A$2:$C$11, 3, FALSE)

    To return the matching values ending with a specific value, put the wildcard in front of the value
  • Чтобы искать и возвращать совпавшее значение по части текстовой строки, независимо от того, находится ли указанный текст в начале, конце или середине строки, просто заключите ссылку на ячейку или текст в два знака * с обеих сторон. Используйте такую формулу:
  • =VLOOKUP("*"&D2&"*", $A$2:$B$11, 2, FALSE)

    to return the matched value based on part of the text string, enclose the cell reference with two asterisks on both sides

2.7 VLOOKUP значений с другого листа

Часто приходится работать с несколькими листами, и функция VLOOKUP позволяет искать данные на другом листе так же, как и на одном.

Например, у вас есть два листа, как показано на скриншоте ниже. Чтобы найти и вернуть соответствующие данные с указанного листа, выполните следующие шаги:
VLOOKUP from another worksheet

Шаг1: Примените формулу и протяните её в другие ячейки

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

=VLOOKUP(A2,'Data sheet'!$A$2:$C$15,3,0)

Результат:

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

data in one sheet arrow right get the corresponding results in another sheet

Примечание: В приведённой выше формуле:

  • "A2" — искомое значение;
  • "'Data sheet'!A2:C15" — поиск значений в диапазоне A2:C15 на листе с именем Data sheet; (Если имя листа содержит пробелы или знаки препинания, заключайте его в одинарные кавычки, иначе используйте имя напрямую, например:
    =VLOOKUP(A2,Datasheet!$A$2:$C$15,3,0) ).
  • "3" — номер столбца, из которого возвращаются совпавшие данные;
  • "0" — точное совпадение.

2.8 VLOOKUP значений из другой книги

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

Например, у вас есть две книги. В первой — список товаров и их стоимости. Во второй книге вы хотите получить соответствующую стоимость для каждого товара, как показано на скриншоте ниже.
VLOOKUP from another workbook

Шаг1: Примените формулу

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

=VLOOKUP(B2,'[Product list.xlsx]Sheet1'!$A$2:$B$6,2,0)

Результат:

Apply and fill the formula

Примечания:

  • В приведённой выше формуле:
    • "B2" — искомое значение;
    • "'[Product list.xlsx]Sheet1'!A2:B6" — поиск в диапазоне A2:B6 на листе Sheet1 книги Product list; (Ссылка на книгу указывается в квадратных скобках, а вся книга + лист — в одинарных кавычках.)
    • "2" — номер столбца, из которого возвращаются совпавшие данные;
    • "0" — возврат точного совпадения.
  • Если книга поиска закрыта, в формуле будет указан полный путь к файлу, как показано на скриншоте ниже:
    If the lookup workbook is closed, the full file path for the lookup workbook is shown in the formula

2.9 Возврат пустой ячейки или заданного текста вместо0 или ошибки #N/A

Обычно при использовании функции VLOOKUP для возврата соответствующего значения, если совпавшая ячейка пуста, возвращается0. А если совпадение не найдено, вы получите ошибку #N/A, как показано на скриншоте ниже. Если вы хотите отображать пустую ячейку или определённое значение вместо0 или #N/A, этот урок VLOOKUP To Return Blank Or Specific Value Instead Of0 Or N/A может вам помочь.

Return blank or specific text instead of 0 or #N/A error


Продвинутые примеры VLOOKUP

3.1 Двусторонний поиск (VLOOKUP по строке и столбцу)

Иногда требуется выполнить двумерный поиск, то есть искать значение одновременно по строке и столбцу. Например, если у вас есть диапазон данных, и нужно получить значение для определённого товара в заданном квартале. В этом разделе приведена формула для решения такой задачи в Excel.
VLOOKUP in row and column

В Excel можно использовать комбинацию функций VLOOKUP и MATCH для выполнения двустороннего поиска.

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

=VLOOKUP(G2, $A$2:$E$7, MATCH(H1, $A$2:$E$2, 0), FALSE)

use a combination of VLOOKUP and MATCH functions to get the result

Примечание: В приведённой выше формуле:

  • "G2" — искомое значение в столбце, по которому нужно получить соответствующее значение;
  • "A2:E7" — таблица данных, в которой выполняется поиск;
  • "H1" — искомое значение в строке, по которому нужно получить соответствующее значение;
  • "A2:E2" — ячейки с заголовками столбцов;
  • "FALSE" — точное совпадение.

3.2 VLOOKUP по двум и более критериям

Найти совпадение по одному критерию просто, но что делать, если критериев два или больше?

 3.2.1 VLOOKUP по двум и более критериям с помощью формул

В этом случае функции LOOKUP или MATCH и INDEX в Excel помогут быстро и просто решить задачу.

Например, у меня есть таблица ниже, чтобы вернуть совпавшую цену по конкретному товару и размеру, используйте одну из следующих формул.
VLOOKUP based on two or more criteria

Шаг1: Примените любую из формул ниже

Формула1: Введите формулу и нажмите "Enter".

=LOOKUP(2,1/($A$2:$A$12=G1)/($B$2:$B$12=G2),($D$2:$D$12))

Формула2: Введите формулу и нажмите "Ctrl" + "Shift" + "Enter".

=INDEX($D$2:$D$12,MATCH(1,($A$2:$A$12=G1)*($B$2:$B$12=G2),0))

Результат:

Apply any one formula to get the result

Примечания:

  • В приведённых выше формулах:
    • "A2:A12=G1" — поиск критерия G1 в диапазоне A2:A12;
    • "B2:B12=G2" — поиск критерия G2 в диапазоне B2:B12;
    • "D2:D12" — диапазон, из которого возвращается соответствующее значение.
  • Если критериев больше двух, просто добавьте их в формулу, например:
    =LOOKUP(2,1/($A$2:$A$12=G1)/($B$2:$B$12=G2)/($C$2:$C$12=G3),($D$2:$D$12))
    =INDEX($D$2:$D$12,MATCH(1,($A$2:$A$12=G1)*($B$2:$B$12=G2)*($C$2:$C$12=G3),0))
  • join the other criteria into the formula if there are more than two criteria
 3.2.2 VLOOKUP по двум и более критериям с помощью Kutools для Excel

Запоминать сложные формулы, которые нужно применять многократно, бывает непросто, что снижает эффективность работы. Однако "Kutools для Excel" предлагает функцию "Многокритериальный поиск", которая позволяет вернуть соответствующий результат по одному или нескольким условиям всего за несколько кликов.

  1. Нажмите "Kutools" > "Супер ПОИСК" > "Многокритериальный поиск", чтобы включить эту функцию.
  2. Затем укажите параметры в диалоговом окне в зависимости от ваших данных.
Примечание: Для использования этой функции скачайте Kutools для Excel с30-дневным бесплатным пробным периодом.

VLOOKUP based on two or more criteria by kutools

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

3.3 VLOOKUP для возврата нескольких значений по одному или нескольким условиям

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

 3.3.1 VLOOKUP всех совпавших значений по одному или нескольким условиям по горизонтали

Допустим, у вас есть таблица с данными о стране, городе и именах в диапазоне A1:C14, и теперь вы хотите вернуть все имена по горизонтали, относящиеся к "US", как показано на скриншоте ниже. Чтобы решить эту задачу, нажмите здесь для пошагового результата.

 VLOOKUP all matching values based on one or more conditions horizontally

 3.3.2 VLOOKUP всех совпавших значений по одному или нескольким условиям по вертикали

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

 VLOOKUP all matching values based on one or more conditions vertically

 3.3.3 VLOOKUP всех совпавших значений по одному или нескольким условиям в одну ячейку

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

 VLOOKUP all matching values based on one or more conditions into single cell

Примечания:


3.4 VLOOKUP для возврата всей строки совпавшей ячейки

В этом разделе расскажем, как получить всю строку по совпавшему значению с помощью функции VLOOKUP.

Шаг1: Примените следующую формулу

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

=VLOOKUP($F$2,$A$1:$D$12,COLUMN(A1),FALSE)

Результат:

Теперь вы видите, что возвращена вся строка данных. Смотрите скриншот:
VLOOKUP to return entire row of a matched cell by a formula

Примечание: в приведённой выше формуле:

  • "F2" — искомое значение, по которому нужно вернуть всю строку;
  • "A1:D12" — диапазон данных, в котором ищется значение;
  • "A1" — указывает первый столбец в вашем диапазоне данных;
  • "FALSE" — точный поиск.

Советы:

  • Если найдено несколько строк по совпавшему значению, чтобы вернуть все соответствующие строки, примените приведённую ниже формулу, затем одновременно нажмите клавиши "Ctrl" + "Shift" + "Enter" для первого результата. Затем протяните маркер заполнения вправо. После этого продолжайте тянуть маркер вниз по ячейкам, чтобы получить все совпавшие строки. Смотрите демонстрацию ниже:
    =IFERROR(INDEX(A:A,SMALL(IF(ISNUMBER(SEARCH($F$2,$A$2:$A$12)),ROW($A$2:$A$12),""),ROW()-1)),"")

3.5 Вложенный VLOOKUP в Excel

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

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

Общая формула для вложенного VLOOKUP:

=VLOOKUP(VLOOKUP(lookup_value, table_array1, col_index_num1,0), table_array2, col_index_num2,0)

Примечания:

  • "lookup_value" — значение, которое вы ищете;
  • "Table_array1", "Table_array2" — таблицы, в которых содержатся искомое и возвращаемое значения;
  • "col_index_num1" — номер столбца в первой таблице для поиска промежуточных данных;
  • "col_index_num2" — номер столбца во второй таблице, из которого возвращается совпавшее значение;
  • "0" — используется для точного совпадения.

Шаг1: Примените и протяните следующую формулу

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

=VLOOKUP(VLOOKUP(G3,$A$3:$B$7,2,0),$D$3:$E$7,2,0)

Результат:

Теперь вы получите результат, как показано на скриншоте ниже:
Apply and fill a formula

Примечания: в приведённой выше формуле:

  • "G3" — содержит значение, которое вы ищете;
  • "A3:B7", "D3:E7" — диапазоны таблиц, в которых содержатся искомое и возвращаемое значения;
  • "2" — номер столбца в диапазоне, из которого возвращается совпавшее значение.
  • "0" — точное совпадение VLOOKUP.

3.6 Проверка наличия значения на основе списка данных в другом столбце

Функция VLOOKUP также может помочь проверить, существуют ли значения на основе списка данных в другом столбце. Например, если вы хотите искать имена в столбце C и возвращать Да или Нет в зависимости от того, найдено ли имя в столбце A, как показано на скриншоте ниже.
Check if value exists based on a list data in another column

Шаг1: Примените следующую формулу

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

=IF(ISNA(VLOOKUP(C2,$A$2:$A$10,1,FALSE)), "No", "Yes")

Результат:

Вы получите результат, как требуется, смотрите скриншот:
Apply and fill a formula

Примечания: в приведённой выше формуле:

  • "C2" — искомое значение, которое нужно проверить;
  • "A2:A10" — диапазон списка, в котором проверяется наличие искомых значений;
  • "FALSE" — точное совпадение.

3.7 VLOOKUP и суммирование всех совпавших значений в строках или столбцах

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

 3.7.1 VLOOKUP и суммирование всех совпавших значений в строке или нескольких строках

Допустим, у вас есть список товаров с продажами за несколько месяцев, как показано на скриншоте ниже. Теперь нужно просуммировать все заказы за все месяцы по заданным товарам.
VLOOKUP and sum all matched values in a row

Шаг1: Примените следующую формулу

Скопируйте или введите приведённую ниже формулу в пустую ячейку, затем одновременно нажмите клавиши "Ctrl" + "Shift" + "Enter" для первого результата. Затем протяните маркер заполнения вниз, чтобы скопировать формулу в другие нужные ячейки.

=SUM(VLOOKUP(H2, $A$2:$F$9, {2,3,4,5,6}, FALSE))

Apply and fill a formula

Результат:

Все значения в строке первого совпавшего значения просуммированы, смотрите скриншот:
all values in a row of the first matching value are summed together

Примечания: в приведённой выше формуле:

  • "H2" — ячейка с искомым значением;
  • "A2:F9" — диапазон данных (без заголовков столбцов), включающий искомое и совпавшие значения;
  • "{2,3,4,5,6}" — номера столбцов, используемых для подсчёта суммы диапазона;
  • "FALSE" — точное совпадение.

Совет: Если нужно просуммировать все совпадения в нескольких строках, используйте следующую формулу:

  • =SUMPRODUCT(($A$2:$A$9=H2)*$B$2:$F$9)
  • apply a formula to sum all matches in multiple rows
 3.7.2 VLOOKUP и суммирование всех совпавших значений в столбце или нескольких столбцах

Если нужно просуммировать итоговое значение за определённые месяцы, как показано на скриншоте ниже. Обычная функция VLOOKUP не поможет, здесь нужно использовать функции SUM, INDEX и MATCH вместе для создания формулы.
VLOOKUP and sum all matched values in a column

Шаг1: Примените следующую формулу

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

=SUM(INDEX($B$2:$F$9,0,MATCH(H2,$B$1:$F$1,0)))

Результат:

Теперь первые совпавшие значения по конкретному месяцу в столбце просуммированы, смотрите скриншот:
Apply and fill a formula

Примечания: в приведённой выше формуле:

  • "H2" — ячейка с искомым значением;
  • "B1:F1" — заголовки столбцов, содержащие искомое значение;
  • "B2:F9" — диапазон данных, содержащий числовые значения для суммирования.

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

  • =SUMPRODUCT($B$2:$F$9*(($B$1:$F$1)=H2))
  • use a formula to sum all matched values in multiple columns
 3.7.3 VLOOKUP и суммирование первого или всех совпавших значений с помощью Kutools для Excel

Возможно, приведённые выше формулы сложно запомнить. В этом случае рекомендую мощную функцию — "Поиск и суммирование" в Kutools для Excel. С её помощью вы сможете выполнять VLOOKUP и суммировать первое или все совпавшие значения в строках или столбцах максимально просто.

  1. Нажмите "Kutools" > "Супер ПОИСК" > "Поиск и суммирование", чтобы включить эту функцию.
  2. Затем укажите параметры в диалоговом окне в зависимости от ваших потребностей.
Примечание: Для использования этой функции скачайте Kutools для Excel с30-дневным бесплатным пробным периодом.
Kutools для Excel предлагает более 300 продвинутых функций для упрощения сложных задач, повышая креативность и эффективность. Интеграция с возможностями ИИ позволяет Kutools автоматизировать задачи с высокой точностью, делая управление данными без усилий. Подробная информация о Kutools для Excel...  Бесплатная пробная версия...
 3.7.4 VLOOKUP и суммирование всех совпавших значений одновременно по строкам и столбцам

Если нужно просуммировать значения при совпадении и по столбцу, и по строке, например, чтобы получить итоговое значение товара Sweater за март, как показано на скриншоте ниже.
VLOOKUP and sum all matched values both in rows and columns

Здесь можно использовать функцию SUMPRODUCT для выполнения этой задачи.

Введите следующую формулу в ячейку и нажмите клавишу "Enter" для получения результата, смотрите скриншот:

=SUMPRODUCT(($B$2:$F$9)*($B$1:$F$1=I2)*($A$2:$A$9=H2))

use the SUMPRODCT function to get the result

Примечания: В приведённой выше формуле:

  • "B2:F9" — диапазон данных, содержащий числовые значения для суммирования;
  • "B1:F1" — заголовки столбцов, содержащие искомое значение для суммирования;
  • "I2" — искомое значение среди заголовков столбцов;
  • "A2:A9" — заголовки строк, содержащие искомое значение для суммирования;
  • "H2" — искомое значение среди заголовков строк.

3.8 VLOOKUP для объединения двух таблиц по ключевым столбцам

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

 3.8.1 VLOOKUP для объединения двух таблиц по одному ключевому столбцу

Например, у вас есть две таблицы: в первой — данные о товарах и именах, во второй — о товарах и заказах. Теперь вы хотите объединить эти таблицы, сопоставив общий столбец товаров в одну таблицу.
VLOOKUP to merge two tables based on one key column

Шаг1: Примените следующую формулу

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

=INDEX($F$2:$F$8, MATCH($A2, $E$2:$E$8, 0))

Результат:

Теперь вы получите объединённую таблицу, в которой столбец заказов добавлен к первой таблице по данным ключевого столбца.
Apply and fill a formula to get the result

Примечания: В приведённой выше формуле:

  • "A2" — искомое значение;
  • "F2:F8" — диапазон данных, из которого возвращаются совпавшие значения;
  • "E2:E8" — диапазон поиска, содержащий искомое значение.
 3.8.2 VLOOKUP для объединения двух таблиц по нескольким ключевым столбцам

Если объединяемые таблицы имеют несколько ключевых столбцов, чтобы объединить их по этим общим столбцам, выполните следующие шаги.
VLOOKUP to merge two tables based on multiple key columns

Общая формула:

=INDEX(lookup_table, MATCH(1, (lookup_value1=lookup_range1) * (lookup_value2=lookup_range2),0), return_column_number)

Примечания:

  • "lookup_table" — диапазон данных, содержащий искомые и совпадающие записи;
  • "lookup_value1" — первый критерий для поиска;
  • "lookup_range1" — список данных, содержащий первый критерий;
  • "lookup_value2" — второй критерий для поиска;
  • "lookup_range2" — список данных, содержащий второй критерий;
  • "return_column_number" — номер столбца в lookup_table, из которого возвращается совпавшее значение.

Шаг1: Примените следующую формулу

Введите формулу ниже в пустую ячейку, где хотите получить результат, затем одновременно нажмите клавиши "Ctrl" + "Shift" + "Enter" для первого совпавшего значения, смотрите скриншот:

=INDEX($E$2:$G$9, MATCH(1, ($A2=$E$2:$E$9) * ($B2=$F$2:$F$9), 0), 3)

Apply a formula

Шаг2: Протяните формулу в другие ячейки

Затем выделите первую ячейку с формулой и протяните маркер заполнения на остальные ячейки, как требуется:
Fill the formula to other cells

Совет: В Excel2016 или более поздних версиях можно также использовать функцию "Power Query" для объединения двух и более таблиц в одну по ключевым столбцам. Нажмите, чтобы узнать подробные пошаговые инструкции.

3.9 VLOOKUP совпадающих значений на нескольких листах

Вам когда-нибудь приходилось выполнять VLOOKUP на нескольких листах Excel? Например, если у вас есть три листа с диапазонами данных и вы хотите получить определённые значения по критериям с этих листов, следуйте пошаговому руководству VLOOKUP Values Across Multiple Worksheets для выполнения этой задачи.

VLOOKUP across multiple worksheets


VLOOKUP с сохранением форматирования ячеек

При поиске совпавших значений исходное форматирование ячеек, такое как цвет шрифта, цвет фона, формат данных и т.д., не сохраняется. Чтобы сохранить форматирование ячейки или данных, в этом разделе приведены советы по решению задачи.

4.1 VLOOKUP совпавшего значения с сохранением цвета ячейки и форматирования шрифта

Как известно, обычная функция VLOOKUP может только вернуть совпавшее значение из другого диапазона данных. Однако бывают случаи, когда нужно получить не только значение, но и форматирование ячейки, например, цвет заливки, цвет шрифта и стиль шрифта. В этом разделе рассмотрим, как вернуть совпавшие значения с сохранением исходного форматирования в Excel.
VLOOKUP and keep cell formatting

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

Шаг1: Скопируйте код1 в модуль кода листа

  1. На листе с данными, которые нужно искать через VLOOKUP, щёлкните правой кнопкой мыши по вкладке листа и выберите "Просмотреть код" в контекстном меню. Смотрите скриншот:
     right click the sheet tab and select View Code
  2. В открывшемся окне "Microsoft Visual Basic for Applications" скопируйте приведённый ниже VBA-код в окно кода.
  3. VBA-код1: VLOOKUP с получением форматирования ячейки вместе с искомым значением
  4. Sub Worksheet_Change(ByVal Target As Range)
    'Updateby Extendoffice
        Dim I As Long
        Dim xKeys As Long
        Dim xDicStr As String
        On Error Resume Next
        Application.ScreenUpdating = False
        xKeys = UBound(xDic.Keys)
        If xKeys >= 0 Then
            For I = 0 To UBound(xDic.Keys)
                xDicStr = xDic.Items(I)
                If xDicStr <> "" Then
                    Range(xDic.Keys(I)).Interior.Color = _
                    Range(xDic.Items(I)).Interior.Color
                    Range(xDic.Keys(I)).Font.FontStyle = _
                    Range(xDic.Items(I)).Font.FontStyle
                    Range(xDic.Keys(I)).Font.Size = _
                    Range(xDic.Items(I)).Font.Size
                    Range(xDic.Keys(I)).Font.Color = _
                    Range(xDic.Items(I)).Font.Color
                    Range(xDic.Keys(I)).Font.Name = _
                    Range(xDic.Items(I)).Font.Name
                    Range(xDic.Keys(I)).Font.Underline = _
                    Range(xDic.Items(I)).Font.Underline
                Else
                    Range(xDic.Keys(I)).Interior.Color = xlNone
                End If
            Next
            Set xDic = Nothing
        End If
        Application.ScreenUpdating = True
    End Sub
    
  5. copy and paste the code1 into the module

Шаг2: Скопируйте код2 в окно модуля

  1. Всё ещё в окне "Microsoft Visual Basic for Applications" нажмите "Вставка" > "Модуль" и скопируйте приведённый ниже VBA-код2 в окно "Модуль".
  2. VBA-код2: VLOOKUP с получением форматирования ячейки вместе с искомым значением
  3. Public xDic As New Dictionary
    Function LookupKeepFormat (ByRef FndValue, ByRef LookupRng As Range, ByRef xCol As Long)
        Dim xFindCell As Range
        On Error Resume Next
        Set xFindCell = LookupRng.Find(FndValue, , xlValues, xlWhole)
        If xFindCell Is Nothing Then
            LookupKeepFormat = ""
            xDic.Add Application.Caller.Address, ""
        Else
            LookupKeepFormat = xFindCell.Offset(0, xCol - 1).Value
            xDic.Add Application.Caller.Address, xFindCell.Offset(0, xCol - 1).Address
        End If
    End Function
    
  4. copy and paste the code2 into the module

Шаг3: Выберите опцию для VBAproject

  1. После вставки кодов нажмите "Сервис" > "Ссылки" в окне "Microsoft Visual Basic for Applications". Затем установите флажок "Microsoft Scripting Runtime" в диалоговом окне "Ссылки — VBAProject". Смотрите скриншоты:
    click Tools > References arrow right check the Microsoft Scripting Runtime checkbox in the dialog box
  2. Затем нажмите "ОК" для закрытия диалогового окна, сохраните и закройте окно кода.

Шаг4: Введите формулу для получения результата

  1. Теперь вернитесь на лист, примените следующую формулу. Затем протяните маркер заполнения вниз, чтобы получить все результаты с форматированием. Смотрите скриншот:
    =LookupKeepFormat(E2,$A$1:$C$10,3)

    type a formula for getting the result

Примечания: в приведённой выше формуле:

  • "E2" — значение для поиска;
  • "A1:C10" — диапазон таблицы;
  • "3" — номер столбца таблицы, из которого нужно получить совпавшее значение.

4.2 Сохранение формата даты для значения, возвращённого VLOOKUP

При использовании функции VLOOKUP для поиска и возврата значения с форматом даты результат может отображаться как число. Чтобы сохранить формат даты в возвращаемом результате, оберните функцию VLOOKUP в функцию TEXT.
vlookup keep date format

Шаг1: Примените следующую формулу

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

=TEXT(VLOOKUP(E2,$A$2:$C$9,3,FALSE),"mm/dd/yyyy")

Результат:

Все совпавшие даты возвращены, как показано на скриншоте ниже:
Apply and fill a formula

Примечания: В приведённой выше формуле:

  • "E2" — искомое значение;
  • "A2:C9" — диапазон поиска;
  • "3" — номер столбца, из которого возвращается значение;
  • "FALSE" — точное совпадение;
  • "mm/dd/yyyy" — формат даты, который вы хотите сохранить.

4.3 Возврат комментария ячейки через VLOOKUP

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

Шаг1: Скопируйте код в модуль

  1. Удерживайте клавиши "ALT" + "F11", чтобы открыть окно "Microsoft Visual Basic for Applications".
  2. Нажмите "Вставка" > "Модуль", затем скопируйте и вставьте следующий код в окно "Модуль".
    VBA-код: VLOOKUP и возврат совпавшего значения с комментарием ячейки:
    Function VlookupComment(LookVal As Variant, FTable As Range, FColumn As Long, FType As Long) As Variant
    'Updateby Extendoffice
        Application.Volatile
        Dim xRet As Variant 'could be an error
        Dim xCell As Range
        xRet = Application.Match(LookVal, FTable.Columns(1), FType)
        If IsError(xRet) Then
            VlookupComment = "Not Found"
        Else
            Set xCell = FTable.Columns(FColumn).Cells(1)(xRet)
            VlookupComment = xCell.Value
            With Application.Caller
                If Not .Comment Is Nothing Then
                    .Comment.Delete
                End If
                If Not xCell.Comment Is Nothing Then
                    .AddComment xCell.Comment.Text
                End If
            End With
        End If
    End Function
  3. Затем сохраните и закройте окно кода.

Шаг2: Введите формулу для получения результата

  1. Теперь введите следующую формулу и протяните маркер заполнения, чтобы скопировать формулу в другие ячейки. Она вернёт совпавшие значения и комментарии одновременно, смотрите скриншот:
    =vlookupcomment(D2,$A$2:$B$9,2,FALSE)

    Type the formula to get the result with comment

Примечания: В приведённой выше формуле:

  • "D2" — искомое значение, для которого нужно вернуть соответствующее значение;
  • "A2:B9" — таблица данных, которую вы используете;
  • "2" — номер столбца, содержащего совпавшее значение;
  • "FALSE" — точное совпадение.

4.4 VLOOKUP для чисел, сохранённых как текст

Например, у меня есть диапазон данных, где номер ID в исходной таблице — числовой, а в ячейках поиска — текстовый. При использовании обычной функции VLOOKUP может возникнуть ошибка #N/A. В этом случае для получения правильной информации оберните функции TEXT и VALUE внутри VLOOKUP. Вот формула для этого:
VLOOKUP numbers stored as text

Шаг1: Примените и протяните следующую формулу

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

=IFERROR(VLOOKUP(VALUE(D2),$A$2:$B$8,2,0),VLOOKUP(TEXT(D2,0),$A$2:$B$8,2,0))

Результат:

Теперь вы получите правильные результаты, как показано на скриншоте ниже:
Apply and fill a formula

Примечания:

  • В приведённой выше формуле:
    • "D2" — искомое значение, для которого нужно вернуть соответствующее значение;
    • "A2:B8" — таблица данных, которую вы используете;
    • "2" — номер столбца, содержащего совпавшее значение;
    • "0" — точное совпадение.
  • Эта формула также хорошо работает, если вы не уверены, где у вас числа, а где текст.

Содержание