Как выполнить поиск по нескольким критериям в Excel (2 простых способа)

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

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

Скачать Рабочую тетрадь для практических занятий

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

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

2 подходящих способа поиска с несколькими критериями в Excel

Посмотрите на набор данных ниже. У нас есть Идентификаторы сотрудников, имена сотрудников, даты присоединения, и Заработная плата компании под названием Группа Jupyter Мы будем искать значения с несколькими критериями, используя ИНДЕКС, СООТВЕТСТВИЕ, XLOOKUP, и Функции ФИЛЬТРА Вот обзор набора данных для нашей сегодняшней задачи.

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

Метод 1: Поиск нескольких критериев типа AND

Прежде всего, давайте попробуем найти несколько критериев множества И тип. Вот, И тип множественных критериев означает, что одно значение должно удовлетворять всем критериям, чтобы быть выбранным. Попробуем найти сотрудника, имеющего ID больше, чем 400 и зарплату больше, чем $40000 Вы можете выполнить задание в 3 разными способами.

1.1 Комбинирование функций INDEX и MATCH в строках и столбцах

Прежде чем перейти к основному вопросу, вы можете заглянуть в ИНДЕКС и МАТЧ функции Excel. Мы найдем сотрудника с ID больше, чем 400 и зарплату больше, чем $40000 используя INDEX-MATCH формула. Следуем приведенным ниже инструкциям:

Шаги:

  • Прежде всего, выберите ячейку G7 и запишите следующую формулу.
=INDEX(C5:C16,MATCH(1,(B5:B16>400)*(E5:E16>40000),0),1)

  • После этого нажмите Войти на клавиатуре. В результате мы нашли сотрудника с ID больше, чем 400 и зарплату больше, чем $40000 , Ричард Самуэльсон .

Разбивка формулы
  • B5:B16>400 проходит через все Идентификаторы в колонке B и возвращает массив TRUE и FALSE , TRUE когда ID больше, чем 400 , иначе FALSE .
  • E5:E16>40000 проходит через все зарплаты в колонке E и возвращает массив TRUE и FALSE , TRUE когда зарплата больше, чем $40,000 , иначе ЛОЖЬ.
  • (B5:B16>400)*(E5:E16>40000) перемножает два массива TRUE и FALSE и возвращает 1 когда ID больше, чем 400 и зарплата больше, чем $40,000 . В противном случае возвращается 0 .
  • MATCH(1,(B5:B16>400)*(E5:E16>40000),0) проходит через массив (B5:B16>400)*(E5:E16>40000) и возвращает серийный номер первого 1 с которыми он сталкивается.
  • В данном случае он возвращает 5, потому что первая 1 находится в серийном номере 5.
  • Наконец-то, INDEX(C5:C16,MATCH(1,(B5:B16>400)*(E5:E16>40000),0),1) возвращает имя сотрудника из диапазона C5:C16 , с номером строки, равным выходу программы МАТЧ функцию и номер столбца, равный 1 .
Примечания Это Формула массива Не забудьте нажать Ctrl + Shift + Enter если только вы не находитесь в Office 365 .
  • Это требуемый сотрудник с ID больше, чем 400 и зарплату больше, чем $40,000 Теперь, если вы понимаете это, можете ли вы сказать мне формулу, чтобы узнать сотрудника, который присоединился к компании. до 31 декабря 2009 г. но при этом получает зарплату менее $25,000 .
  • После этого введите в ячейку следующую формулу G7 .
=INDEX(C5:C16,MATCH(1,(D5:D16

  • Следовательно, попадание Войти Далее, вы получите Анджела Хопкинс как возврат формулы.

Читать далее: 7 типов поиска, которые можно использовать в Excel

1.2 Использование функции XLOOKUP

Мы можем выполнить предыдущую задачу, используя XLOOKUP функции Excel тоже. Но помните, XLOOKUP доступен только в Office 365 Прежде чем перейти к основному вопросу, вы можете взглянуть на XLOOKUP Функция Excel. Теперь мы находим сотрудника с ID больше, чем 400 и зарплату больше, чем $40,000 используя XLOOKUP Функция. Давайте следовать приведенным ниже инструкциям, чтобы научиться!

Шаги:

  • Сначала введите в ячейку следующую формулу G7 .
=XLOOKUP(1,(B5:B16>400)*(E5:E16>40000),C5:C16)

  • В результате мы получили того же сотрудника, что и раньше, Ричард Самуэльсон . Это имя сотрудника с ID больше, чем 400 и зарплату больше, чем $40,000 .

Разбивка формулы
  • (B5:B16>400)*(E5:E16>40000) возвращает массив 1 и 0 , 1 когда ID больше, чем 400 и зарплата больше, чем $40,000 . 0 иначе.
  • XLOOKUP(1,(B5:B16>400)*(E5:E16>40000),C5:C16) сначала ищет 1 в массиве (B5:B16>400)*(E5:E16>40000). Когда он находит такую ячейку, он возвращает значение из соседней ячейки в диапазоне C5:C16 .

Читать далее: Как использовать функцию LOOKUP в Excel (4 подходящих примера)

1.3 Применение функции FILTER

Сайт INDEX-MATCH и XLOOKUP формулы имеют одно ограничение. Если заданным критериям соответствует более одного значения, они возвращают только первое значение. Например, в предыдущем примере, если вы внимательно посмотрите, вы обнаружите, что есть два сотрудники с ID больше, чем 400 и зарплату больше, чем $40,000 .Они Ричард Самуэльсон и Усман Малик. Но INDEX-MATCH и XLOOKUP возврат формул только первый работник, Ричард Самуэльсон Чтобы получить все значения, удовлетворяющие заданным критериям, вы можете воспользоваться функцией ФИЛЬТР функция Excel. Но помните, что ФИЛЬТР функция также доступна только в Office 365 .

Шаги:

  • Чтобы выяснить сотрудников с ID больше, чем 400 и зарплату больше, чем $40,000 сайт ФИЛЬТР формула будет:
=FILTER(C5:C16,(B5:B16>400)*(E5:E16>40000))

  • После этого, на этот раз мы получили всех сотрудников, которые соответствуют всем критериям, Ричард Самуэльсон и Усман Малик .

Разбивка формулы
  • (B5:B16>400)*(E5:E16>40000) возвращает массив 1 и 0 , 1 если ID больше 400 и зарплата больше $40,000. 0 в противном случае (см. INDEX-MATCH раздел).
  • FILTER(C5:C16,(B5:B16>400)*(E5:E16>40000)) перебирает все значения в массиве (B5:B16>400)*(E5:E16>40000), и когда он находит 1 возвращает соседнее значение из диапазона C5:C16 .
  • Таким образом, мы получаем всех сотрудников с ID больше, чем 400 и зарплату больше, чем $40,000 .
  • Теперь, если вы понимаете это, можете ли вы сказать мне формулу, чтобы узнать сотрудников, которые присоединились к компании в период между 1 января 2014 года, и 31 декабря 2016 года но получал зарплату в размере не менее $30 000 ? Да. Вы правы. Формула будет такой:
=FILTER(C5:C16,(D5:D16>=DATE(2014,1,1))*(D5:D16=30000))

Читать далее: Как искать несколько значений в Excel (10 способов)

Метод 2: Поиск нескольких критериев типа OR

Теперь мы попытаемся найти некоторые значения, которые удовлетворяют нескольким критериям ИЛИ тип. Вот, ИЛИ критерии типа означают, что одно значение должно удовлетворять хотя бы одному критерию из всех критериев, чтобы быть выбранным. Попробуем найти сотрудника, который присоединился к команде раньше 1 янв, 2010 или получает зарплату больше, чем $30,000 .

2.1 Слияние функций INDEX и MATCH в диапазоне дат

Нажмите здесь, чтобы посетить ИНДЕКС функцию и нажмите здесь, чтобы посетить МАТЧ функцию перед продолжением, если вы хотите.

Шаги:

  • Сайт INDEX-MATCH формула будет выглядеть так, как показано в окне формул ниже.
=INDEX(C5:C16,MATCH(TRUE,((D5:D1630000))>0,0),1)

  • Видите, у нас есть Джек Симпсон , первый сотрудник с датой приема на работу до 1 января 2010 года , или зарплата более $30,000 . Но сотрудников гораздо больше. Использование INDEX-MATCH, мы получаем только первый.
  • Позже мы соберем всех сотрудников вместе с помощью функции ФИЛЬТР Это необходимый сотрудник, который соответствует хотя бы одному критерию.

Разбивка формулы
  • D5:D16 ="" strong=""> возвращает массив TRUE и FALSE . TRUE когда дата присоединения в колонке D меньше, чем 1 января 2010 года. FALSE иначе.
  • E5:E16>30000 также возвращает массив TRUE и FALSE . TRUE если зарплата превышает 30 000 долларов. FALSE иначе.
  • (D5:D1630000) складывает два массива и возвращает другой массив 0, 1, или 2 . 0 когда ни один критерий не удовлетворяется, 1 когда удовлетворяется только один критерий и 2 когда оба критерия удовлетворены.
  • ((D5:D1630000))>0 перебирает все значения массива (D5:D1630000) и возвращается TRUE если значение больше, чем 0 ( 1 и 2 ), и FALSE иначе ( 0 ).
  • MATCH(TRUE,((D5:D1630000))>0,0) перебирает все значения в массиве ((D5:D1630000))>0 и возвращает первый серийный номер, где он получает значение TRUE .
  • В этом случае возвращается 3 потому что первый TRUE серийно 3 .
  • Наконец-то, INDEX(C5:C16,MATCH(TRUE,((D5:D1630000))>0,0),1) возвращает имя сотрудника из диапазона C5:C16 с серийным номером, возвращенным МАТЧ функция.

Теперь, если вы понимаете это, можете ли вы сказать мне формулу, чтобы найти сотрудника с ID менее 300, или дата вступления в должность менее января 1, 2012, или зарплату больше, чем $30,000 ?

Да. Вы правы. Формула будет такой:

=INDEX(C5:C16,MATCH(TRUE,((B5:B16<200)+(D5:D1630000))>0,0),1)

Читать далее: Как искать текст в Excel (7 подходящих способов)

2.2 Применение функции XLOOKUP

Вы можете выполнить ту же задачу, используя XLOOKUP функция в Excel. XLOOKUP доступен только в Office 365 .

Шаги:

  • Формула для поиска сотрудника с датой приема на работу до января 1, 2010, или зарплату больше, чем $30,000 будет:
=XLOOKUP(TRUE,((D5:D1630000))>0,C5:C16)

  • Видите, у нас тот же сотрудник, что и раньше, Джек Симпсон . Но, как и в случае с INDEX-MATCH формула, заданным критериям соответствует больше сотрудников. Мы получили только первого.

Разбивка формулы
  • ((D5:D1630000))>0 возвращает TRUE если удовлетворен хотя бы один из двух критериев, в противном случае FALSE См. раздел выше.
  • XLOOKUP(TRUE,((D5:D1630000))>0,C5:C16) затем возвращает имя сотрудника из столбца C5:C16 где он получает первый TRUE .

Читать далее: Как искать значение на другом листе в Excel (3 простых способа)

2.3 Использование функции FILTER

Наконец, мы выполним ту же задачу с помощью функции ФИЛЬТР функция в Excel. ФИЛЬТР функция доступна только в Office 365 В этот раз мы получим всех сотрудников, которые присоединились к нам раньше. 1 января 2010 года, или получали зарплату более $30,000 .

Шаги:

  • Формула будет такой же, как показано в окне формул ниже.
=FILTER(C5:C16,((D5:D1630000))>0)

  • Таким образом, возвращаются все сотрудники, которые соответствуют хотя бы одному из заданных критериев.
  • Смотрите, на этот раз мы получили всех сотрудников, которые соответствуют заданным критериям, дата вступления в должность до 1 января 2010 года, или зарплата больше $30,000 .

Разбивка формулы
  • ((D5:D1630000))>0 возвращает TRUE если удовлетворен хотя бы один из двух критериев, в противном случае FALSE . См. INDEX-MATCH секция.
  • FILTER(C5:C16,((D5:D1630000))>0) проходит по всем ячейкам диапазона C5:C16 но возвращает только те из них, когда сталкивается с TRUE .

Читать далее: Как искать таблицу в Excel (8 методов)

Заключение

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

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