Как да търсите с множество критерии в Excel (2 лесни начина)

  • Споделя Това
Hugh West

Докато работим в Excel, често ни се налага да правим това. Трябва да потърсим определена стойност в набор от данни, която отговаря на един или повече критерии. Днес ще покажа как можете да потърсите една или повече стойности, които отговарят на няколко критерия в набор от данни в Excel.

Изтегляне на работна тетрадка за практика

Изтеглете тази учебна тетрадка, за да се упражнявате, докато четете тази статия.

Търсене с множество критерии.xlsx

2 подходящи начина за търсене с множество критерии в Excel

Погледнете набора от данни по-долу. Идентификатори на служителите, имена на служителите, дати на присъединяване, и Заплати на компания с име Група Jupyter . Ще търсим стойности с няколко критерия, като използваме ИНДЕКС, СЪВПАДЕНИЕ, XLOOKUP, и Функции на филтъра . Ето преглед на набора от данни за днешната ни задача.

Сега ще се опитаме да потърсим стойности, които отговарят на различни видове множество критерии, от този набор от данни.

Метод 1: Търсене на множество критерии от тип AND

На първо място, нека се опитаме да потърсим няколко критерия за И тип. Тук, И означава, че една стойност трябва да отговаря на всички критерии, за да бъде избрана. Нека се опитаме да намерим служител с ID по-голям от 400 и заплата, по-голяма от $40000 . Можете да изпълните задачата в 3 различни начини.

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

Преди да преминете към основната точка, можете да хвърлите един поглед на INDEX и MATCH Ще открием служителя с 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 , като номерът на реда е равен на резултата от MATCH функция и номер на колона, равен на 1 .
Бележки Това е Формула на масива . Затова не забравяйте да натиснете Ctrl + Shift + Enter освен ако не сте в Office 365 .
  • Това е необходимият служител с ID по-голям от 400 и заплата, по-голяма от $40,000 Сега, ако разбирате това, можете ли да ми кажете формулата за определяне на служителя, който се е присъединил към преди 31 декември 2009 г. , но все пак получава заплата по-малко от 25 000 USD .
  • След това въведете следната формула в клетката 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 когато идентификаторът е по-голям от 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-MATCH формулата ще бъде както е показано в полето за формула по-долу.
=INDEX(C5:C16,MATCH(TRUE,((D5:D1630000))>0,0),1)

  • Вижте, имаме Джак Симпсън , първият служител с дата на постъпване преди 1 януари 2010 г. , или заплата повече от 30 000 USD . Но има много повече служители. INDEX-MATCH, получаваме само първия.
  • По-късно ще съберем всички служители заедно с помощта на ФИЛТЪР Това е необходимият служител, който отговаря на поне един критерий.

Разбивка на формулата
  • D5:D16 ="" strong=""> връща масив от TRUE и FALSE . TRUE когато датата на присъединяване в колона D е по-малка от 1 януари 2010 г. FALSE в противен случай.
  • E5:E16>30000 също връща масив от TRUE и FALSE . TRUE когато заплатата е по-голяма от 30 000 USD. 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 със серийния номер, върнат от MATCH функция.

Сега, ако разбирате това, можете ли да ми кажете формулата за намиране на служителя с 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 и онлайн обучение, за да помогне на хората и фирмите да достигнат пълния си потенциал.