Как сделать Vlookup с несколькими совпадениями в Excel (с простыми шагами)

  • Поделись Этим
Hugh West

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

Скачать Практическое пособие

Вы можете скачать следующую рабочую тетрадь Excel для лучшего понимания и самостоятельной практики.

Выполнение Vlookup с несколькими совпадениями.xlsx

2 шага к Vlookup с множественными совпадениями в Excel

Здесь у нас есть Книжные записи книжного магазина "Мартин Этот набор данных содержит Тип книги , Название книги и Автор некоторых книг в рубриках B , C и D соответственно.

Сегодня наша задача - вытащить все спички из каждого типа книг, используя Функция VLOOKUP Мы выполним это в два этапа. Итак, давайте изучим их по очереди.

Здесь мы использовали Microsoft Excel 365 версию, вы можете использовать любую другую версию в зависимости от вашего удобства.

📌 Шаг 01: Создание уникального имени для каждого значения поиска

  • В самом начале вставьте новый столбец с заголовком Колонка помощника слева в колонку поиска Тип книги и введите эту формулу в ячейку B5 .
=C5&COUNTIF(C5:$C$25,C5) Разбивка формулы
  • COUNTIF(C5:$C$25,C5) возвращает общее количество ячеек в диапазоне C5:C25 ( Тип книги ), которые содержат значение в ячейке C5 ( Роман ). см. Функция COUNTIF для подробностей.
    • Проще говоря, сколько существует романов. Это 7 .
  • C5&COUNTIF(C5:$C$25,C5) конкатенирует значение в ячейке C5 ( Роман ) с ним.
    • Таким образом, возвращается Роман7 .

При перетаскивании Наполнительная рукоятка инструмент, C5 увеличивается один за другим, как C5 , C6 , C7 ... но C25 остается постоянным. Поэтому для каждого Тип книги Более ранние исключаются, и создается новое имя.

Например, в случае с романами, Роман1 на Роман7 генерируются, и аналогично для Поэзия и другие типы книг.

  • Затем нажмите ENTER .

  • После этого подведите курсор к правому нижнему углу ячейки B5 и это будет выглядеть как плюс (+) знак. Вообще-то, это Наполнительная рукоятка инструмент.
  • Теперь дважды щелкните по нему.

Он копирует эту формулу в остальные ячейки. Вы найдете все значения поиска, снабженные уникальным именем, например Роман1 , Роман2..., Поэзия1 , Поэзия2... , и т.д.

📌 Шаг 02: Используйте функцию VLOOKUP

  • Прежде всего, создайте новый столбец с Заголовок колонки в качестве значения поиска.

  • Во-вторых, вставьте следующую формулу в ячейку G5 которая является первой ячейкой этого столбца.
=VLOOKUP(G$4&ROW($A$1:INDIRECT("A"&COUNTIF($C$5:$C$25,G$4))),$B$5:$E$25,3,FALSE) Разбивка формулы
  • COUNTIF($C$5:$C$25,G$4) указывает, сколько ячеек в диапазоне C5:C25 ( Тип книги ) содержат значение в ячейке G4 ( Роман ).
    • Проще говоря, сколько всего существует романов. Это 7 .

Мы использовали абсолютную ссылку на ячейку диапазона C5:C25 ( $C$5:$C$25 ), потому что мы хотим, чтобы она оставалась неизменной, если мы скопируем формулу в любую ячейку.

  • INDIRECT("A"&COUNTIF($C$5:$C$25,G$4)) становится INDIRECT("A"&7) и возвращает ссылку на ячейку A7 . См. функция INDIRECT для подробностей.
  • ROW($A$1:INDIRECT("A"&COUNTIF($C$5:$C$25,G$4))) теперь становится ROW(A1:A7) .см. Функция ROW для подробностей.
    • Он возвращает массив из 1 на 7 например, {1, 2, 3, 4, 5, 6, 7} .

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

  • G$4&ROW($A$1:INDIRECT("A"&COUNTIF($C$5:$C$25,G$4))) теперь конкатенирует значение в ячейке G4 ( Роман ) с массивом, возвращаемым Функция ROW и возвращает другой массив.
    • Поэтому он возвращается {Новелла1, Новелла2, ..., Новелла7} .
  • VLOOKUP(G$4&ROW($A$1:INDIRECT("A"&COUNTIF($C$5:$C$25,G$4))),$B$5:$E$25,3,FALSE) становится VLOOKUP({Novel1, Novel2, ..., Novel7},$B$5:$E$25,3,FALSE) .

Он ищет каждое значение массива {Новелла1, Новелла2, ... Новелла7} в колонке поиска B .

Затем он возвращает соответствующее название романа из файла 3-й колонка (как col_index_num это 3 ). Таким образом, мы получаем список всех романов.

  • Как обычно, нажмите кнопку ENTER ключ.

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

А для другого Типы книг ,

  • Сначала вставьте их имена рядом друг с другом как Заголовки колонок и перетащите Наполнительная рукоятка .

Читать далее: INDIRECT VLOOKUP в Excel

Похожие чтения

  • VLOOKUP не работает (8 причин и решений)
  • Excel LOOKUP vs VLOOKUP: с 3 примерами
  • Почему VLOOKUP возвращает #N/A, когда совпадение существует? (5 причин и решений)
  • Использование VLOOKUP с несколькими критериями в Excel (6 методов + альтернативы)
  • Excel VLOOKUP для поиска последнего значения в столбце (с альтернативами)

Альтернативные способы Vlookup с множественными совпадениями в Excel

Если предыдущий способ кажется опасным, не волнуйтесь, есть и другие варианты.

1. использование функции ФИЛЬТР

Это действительно самый простой метод. Здесь мы будем использовать только Функция ФИЛЬТР Выполните следующие простые действия.

📌 Шаги:

  • Во-первых, запишите Тип книги как Заголовок колонки и введите следующую формулу в ячейку F5 .
=FILTER($C$5:$C$25,$B$5:$B$25=F$4) Разбивка формулы

Вот,

  • $C$5:$C$25 ( Название книги ) является массив поиска Мы ищем названия книг. Вы используете свое.
  • $B$5:$B$25 ( Тип книги ) является соответствующий_массив Мы хотим сопоставить типы книг. Вы используете свою соответственно.
  • F4 ( Роман ) является соответствующее_значение Мы хотим соответствовать романам. Вы используете его соответствующим образом.
  • Затем нажмите ENTER .

Теперь, если вы хотите Названия книг из всех Типы книг ,

  • Первоначально вставьте их имена в качестве Заголовки колонок рядом друг с другом, а затем перетащите Наполнительная рукоятка инструмент.

2. применение комбинации функций INDEX, SMALL и ROWS (совместимо со старыми версиями Excel)

Сайт Функция ФИЛЬТР доступен только в Office 365 Поэтому, если вы используете старую версию Excel, не волнуйтесь. У нас есть другое обходное решение для вас. Оно простое и легкое; просто следуйте ему.

📌 Шаги:

  • В первую очередь, вставьте Тип книги как Заголовок колонки в камере F4 и введите эту формулу в ячейку F5 .
=IFERROR(INDEX($C$5:$C$25,(SMALL(IF($B$5:$B$25=F4,ROW(B5:B25)-ROWS(B1:B4),""),(ROW(B5:B25)-ROWS(B1:B4))))),""). Разбивка формулы
  • ROW(B5:B25) возвращает массив {5, 6, 7, ..., 25} . And ROWS(B1:B4) возвращает 4 . Так что ROW(B5:B25)-ROWS(B1:B4) возвращает массив {1, 2, 3, ..., 21} . См. ROW и РЯДЫ функцию для получения подробной информации.
  • IF($B$5:$B$25=F4,ROW(B5:B25)-ROWS(B1:B4),"") возвращает соответствующее число из массива {1, 2, 3, ..., 21} значение в ячейке F4 ( Роман ) совпадает со значением в любой ячейке диапазона B5:B25 ( Тип книги ). В противном случае возвращается пустая ячейка. См. функция IF для подробностей.

  • SMALL(IF($B$5:$B$25=F4,ROW(B5:B25)-ROWS(B1:B4),""),(ROW(B5:B25)-ROWS(B1:B4)))) становится SMALL({1, ..., 3, ..., 6, ..., 20, ...},{1, 2, 3, 4, ...., 21}) и возвращает сначала числа, затем #NUM! ошибки в пустых ячейках. См. функция SMALL для подробностей.

  • INDEX($C$5:$C$25,(SMALL(IF($B$5:$B$25=F4,ROW(B5:B25)-ROWS(B1:B4),""),(ROW(B5:B25)-ROWS(B1:B4))))) становится INDEX($C$5:$C$25,{1,3,6,11,...,#NUM!}) и возвращает соответствующий Названия книг (Название романов) и #NUM! ошибки. см. Функция ИНДЕКС для подробностей.

  • Наконец, мы обернули формулу внутри Функция IFERROR чтобы превратить ошибки в пустые ячейки.
  • После этого нажмите ENTER .

  • Теперь, если хотите, вставьте другой Типы книг в качестве Заголовки колонок и перетащите Наполнительная рукоятка Вы получите книги других типов.

3. Vlookup с несколькими совпадениями и возврат результатов в строке

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

📌 Шаги:

  • Сначала перейдите в ячейку G5 и запишите приведенную ниже формулу.
=IFERROR(INDEX($D$5:$D$19,SMALL(IF($F5=$B$5:$B$19,ROW($D$5:$D$19)-4,""),COLUMN()-6)),"")

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

  • Затем нажмите кнопку ENTER ключ.

Но есть и другие авторы, у которых есть романы в этом наборе данных. Как мы можем получить их?

Просто перетащите Наполнительная рукоятка до самой клетки K5 чтобы получить другой Авторы из Роман Более того, перетащить Наполнительная рукоятка инструмент к клетке K7 чтобы получить имена Авторы для разных типов книг. Для пояснения смотрите рисунок ниже.

Как сделать Vlookup для множества совпадений с несколькими критериями

В предыдущих примерах мы находили значения по одному критерию. Например, мы получали названия книг для определенного типа книг. Но здесь мы будем подразумевать несколько критериев. Мы будем искать по Романы из Чарльз Диккенс Используя этот метод, давайте посмотрим его в действии.

📌 Шаги:

  • Прежде всего, выберите ячейку H5 и вставьте следующую формулу.
=IFERROR(INDEX($C$5:$C$25,SMALL(IF(1=((--($F$5=$B$5:$B$25))*(--($G$5=$D$5:$D$25))),ROW($C$5:$C$25)-4,""),ROW()-4)),"")
  • Затем нажмите ENTER .

Как с помощью Vlookup вернуть несколько совпадений в одну ячейку

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

📌 Шаги:

  • В первую очередь, перейдите в камеру G5 и введите приведенную ниже формулу.
=TEXTJOIN(", ",TRUE,IF($F$5=$B$5:$B$25,C5:C25,""))

Здесь функция IF получает значение из диапазона C5:C25 где соответствующие значения в диапазоне B5:B25 соответствует значению в ячейке F5 . Тогда Функция TEXTJOIN объединяет значения массива с запятой в качестве разделителя.

  • Во-вторых, нажмите ENTER .

Читать далее: Функция INDEX MATCH в сравнении с функцией VLOOKUP (9 примеров)

Заключение

В этой статье просто и лаконично объясняется, как сделать vlookup с несколькими совпадениями в Excel. не забудьте скачать файл Практика. спасибо за прочтение этой статьи. надеемся, она была полезной. пожалуйста, сообщите нам в разделе комментариев, если у вас есть какие-либо вопросы или предложения. пожалуйста, посетите наш сайт, ExcelWIKI , поставщика комплексных решений для Excel, чтобы узнать больше.

Хью Уэст — опытный тренер и аналитик Excel с более чем 10-летним опытом работы в отрасли. Он имеет степень бакалавра в области бухгалтерского учета и финансов и степень магистра делового администрирования. Хью страстно любит преподавать и разработал уникальный подход к обучению, которому легко следовать и который легко понять. Его экспертные знания Excel помогли тысячам студентов и специалистов по всему миру улучшить свои навыки и преуспеть в своей карьере. В своем блоге Хью делится своими знаниями со всем миром, предлагая бесплатные учебные пособия по Excel и онлайн-обучение, чтобы помочь отдельным лицам и компаниям полностью раскрыть свой потенциал.