Як виконати пошук за кількома критеріями в Excel (2 простих способи)

  • Поділитися Цим
Hugh West

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

Завантажити Практичний посібник

Завантажте цей практичний посібник, щоб потренуватися, поки ви читаєте цю статтю.

Пошук за кількома критеріями.xlsx

2 правильні способи пошуку за кількома критеріями в Excel

Подивіться на набір даних нижче. Ми маємо Ідентифікатори співробітників, імена співробітників, дати приєднання, і Заробітна плата компанії з назвою Jupyter Group Ми будемо шукати значення з декількома критеріями, використовуючи функцію INDEX, MATCH, XLOOKUP, і Функції ФІЛЬТРА Ось огляд набору даних для нашої сьогоднішньої задачі.

Тепер спробуємо з цього набору даних знайти значення, які відповідають різним типам множинних критеріїв.

Спосіб 1: Пошук за кількома критеріями типу AND

Перш за все, спробуємо виокремити декілька критеріїв І Друкуй. Ось, І тип multiple criteria означає, що одне значення повинно задовольняти всім критеріям для відбору. Спробуємо знайти співробітника з ПОСВІДЧЕННЯ ОСОБИ більше, ніж 400 та заробітна плата більше ніж $40000 Ви можете виконати завдання в 3 по-різному.

1.1 Поєднання функцій ІНДЕКС і СПІВПАДАННЯ в рядках і стовпцях

Перед тим, як перейти до основної частини, ви можете зайти і поглянути на ІНДЕКС і МАТЧ Ми дізнаємося, що працівник, який має ПОСВІДЧЕННЯ ОСОБИ більше, ніж 400 та заробітна плата більше ніж $40000 за допомогою INDEX-MATCH Дотримуємося інструкцій, наведених нижче:

Сходинки:

  • Перш за все, виділяємо комірку G7 і запишемо наступну формулу.
=INDEX(C5:C16,MATCH(1,(B5:B16>400)*(E5:E16>40000),0),1)

  • Після цього натисніть Увійдіть В результаті ми знайшли співробітника з ПОСВІДЧЕННЯ ОСОБИ більше, ніж 400 та заробітна плата більше ніж $40000 , Річард Самуельсон .

Розбивка по формулам
  • B5:B16>400 проходить через всі Посвідчення особи у колонці B і повертає масив ПРАВДА і НЕПРАВДА , ПРАВДА коли ПОСВІДЧЕННЯ ОСОБИ більше, ніж 400 в іншому випадку НЕПРАВДА .
  • E5:E16>40000 проходить через всі зарплати у колонці E і повертає масив ПРАВДА і НЕПРАВДА , ПРАВДА коли заробітна плата перевищує $40,000 в іншому випадку НЕПРАВДА.
  • (B5:B16>400)*(E5:E16>40000) перемножує два масиви ПРАВДА і НЕПРАВДА і повертає a 1 коли в Україні з'являться ПОСВІДЧЕННЯ ОСОБИ більше, ніж 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 .
  • Це необхідний працівник з ПОСВІДЧЕННЯ ОСОБИ більше, ніж 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 Тепер ми дізнаємося, що працівник з ПОСВІДЧЕННЯ ОСОБИ більше, ніж 400 та заробітна плата більше ніж $40,000 за допомогою XLOOKUP Щоб навчитися, слідуймо інструкціям нижче!

Сходинки:

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

  • В результаті ми отримали того ж співробітника, що і раніше, Річард Самуельсон Це ім'я співробітника, який має ПОСВІДЧЕННЯ ОСОБИ більше, ніж 400 та заробітна плата більше ніж $40,000 .

Розбивка по формулам
  • (B5:B16>400)*(E5:E16>40000) повертає масив 1 і 0 , 1 коли в Україні з'являться ПОСВІДЧЕННЯ ОСОБИ більше, ніж 400 і заробітна плата більша ніж $40,000 . 0 інакше.
  • XLOOKUP(1,(B5:B16>400)*(E5:E16>40000),C5:C16) спочатку шукає 1 в масиві (B5:B16>400)*(E5:E16>40000). Коли вона знаходить таку, то повертає значення з сусідньої комірки в діапазоні C5:C16 .

Читати далі: Як використовувати функцію ПОИСК в Excel (4 приклади)

1.3 Застосування функції ФІЛЬТР

На сьогоднішній день, на жаль, це не так. INDEX-MATCH та XLOOKUP мають одне обмеження. Якщо заданим критеріям відповідає більше одного значення, вони повертають тільки перше значення. Наприклад, в попередньому прикладі, якщо ви подивитеся уважно, ви побачите, що є два працівники, які мають ПОСВІДЧЕННЯ ОСОБИ більше, ніж 400 та заробітна плата більше ніж $40,000 Вони Річард Самуельсон і Усман Малік. А ось у INDEX-MATCH та XLOOKUP повернення формул тільки перший працівник, Річард Самуельсон Для отримання всіх значень, що задовольняють заданим критеріям, можна скористатися функцією ФІЛЬТР функція Excel. Але пам'ятайте, що ФІЛЬТР функція також доступна тільки в Office 365 .

Сходинки:

  • Для того, щоб виявити працівників, які мають ПОСВІДЧЕННЯ ОСОБИ більше, ніж 400 та заробітна плата більше ніж $40,000 в "Урядовому кур'єрі". ФІЛЬТР формула буде такою:
=FILTER(C5:C16,(B5:B16>400)*(E5:E16>40000))

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

Розбивка по формулам
  • (B5:B16>400)*(E5:E16>40000) повертає масив 1 і 0 , 1 коли ідентифікаційний номер більше 400 і зарплата більше $40 000. 0 в іншому випадку (див. INDEX-MATCH розділ).
  • FILTER(C5:C16,(B5:B16>400)*(E5:E16>40000)) перебирає всі значення в масиві (B5:B16>400)*(E5:E16>40000), і коли він знайде 1 повертає сусіднє значення з діапазону C5:C16 .
  • Таким чином, ми отримуємо всіх співробітників з ПОСВІДЧЕННЯ ОСОБИ більше, ніж 400 та заробітна плата більше ніж $40,000 .
  • Тепер, якщо ви це розумієте, скажіть, будь ласка, формулу, за якою можна дізнатися, які працівники перейшли на роботу в період між 1 січня 2014 року, і 31 грудня 2016 року але отримував заробітну плату в розмірі не менше 30 000 доларів США Так. Ви маєте рацію. Формула буде такою:
=FILTER(C5:C16,(D5:D16>=DATE(2014,1,1))*(D5:D16=30000))

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

Спосіб 2: Пошук за кількома критеріями типу "АБО

Тепер ми спробуємо знайти деякі значення, які задовольняють декільком критеріям АБО Друкуй. Ось, АБО тип критеріїв означає, що одне значення повинно задовольняти хоча б одному критерію з усіх критеріїв для відбору. Спробуємо з'ясувати працівника, який приєднався раніше 1 січня 2010 року або отримує заробітну плату більшу, ніж $30,000 .

2.1 Об'єднання функцій INDEX та MATCH в діапазоні дат

Натисніть тут, щоб відвідати ІНДЕКС і натисніть тут, щоб відвідати МАТЧ перед тим, як продовжити, якщо бажаєте.

Сходинки:

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

  • Бачите, у нас є Джек Сімпсон перший працівник з датою приєднання до 1 січня 2010 року або заробітна плата більше $30 000 Але працівників набагато більше. Використовуючи ІНДЕКС-МАТЧ, ми отримуємо лише перше.
  • Пізніше ми зберемо всіх співробітників разом за допомогою ФІЛЬТР Це необхідний працівник, який відповідає хоча б одному критерію.

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

Тепер, якщо ви це розумієте, чи можете ви сказати мені формулу, за якою можна дізнатися, що працівник з ПОСВІДЧЕННЯ ОСОБИ менше, ніж 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 прибутки ПРАВДА коли виконується хоча б один з двох критеріїв, в іншому випадку НЕПРАВДА Див. попередній розділ.
  • XLOOKUP(TRUE,((D5:D1630000))>0,C5:C16) повертає ім'я співробітника з стовпця C5:C16 де він отримує перший ПРАВДА .

Читати далі: Як знайти значення з іншого аркуша в Excel (3 простих способи)

2.3 Використання функції ФІЛЬТР

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

Сходинки:

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

  • Таким чином вона повертає всіх працівників, які відповідають хоча б одному з наведених критеріїв.
  • Бачите, цього разу у нас є всі співробітники, які відповідають заданим нами критеріям, дата приєднання до нас раніше 1 січня 2010 року, або заробітна плата більша, ніж $30,000 .

Розбивка по формулам
  • ((D5:D1630000))>0 прибутки ПРАВДА коли виконується хоча б один з двох критеріїв, в іншому випадку НЕПРАВДА Див. INDEX-MATCH розділ.
  • FILTER(C5:C16,((D5:D1630000))>0) проходить через всі комірки діапазону C5:C16 але повертає тільки ті, які зустрічає ПРАВДА .

Читати далі: Як знайти таблицю в Excel (8 способів)

Висновок

Використовуючи ці методи, ви можете знайти значення, яке задовольняє декільком критеріям з будь-якого набору даних. Знаєте інші методи? Або у вас виникли питання? Задавайте їх нам.

Г’ю Вест — досвідчений тренер і аналітик Excel із понад 10-річним досвідом роботи в галузі. Він має ступінь бакалавра з бухгалтерського обліку та фінансів і ступінь магістра з ділового адміністрування. Г’ю має пристрасть до викладання та розробив унікальний підхід до викладання, який легко зрозуміти та дотримуватися. Його експертне знання Excel допомогло тисячам студентів і професіоналів у всьому світі вдосконалити свої навички та досягти успіху в кар’єрі. У своєму блозі Г’ю ділиться своїми знаннями зі світом, пропонуючи безкоштовні навчальні посібники з Excel та онлайн-навчання, щоб допомогти окремим особам і компаніям повністю розкрити свій потенціал.