Cum să căutați cu criterii multiple în Excel (2 moduri simple)

  • Imparte Asta
Hugh West

În timp ce lucrăm în Excel, trebuie să facem acest lucru de multe ori. Trebuie să căutăm o anumită valoare într-un set de date care satisface unul sau mai multe criterii. Astăzi vă voi arăta cum puteți căuta una sau mai multe valori care satisfac mai multe criterii într-un set de date în Excel.

Descărcați caietul de practică

Descărcați acest caiet de exerciții pentru a vă exercita în timp ce citiți acest articol.

Căutare cu criterii multiple.xlsx

2 Modalități adecvate de a căuta cu criterii multiple în Excel

Priviți setul de date de mai jos. Avem ID-urile angajaților, numele angajaților, datele de aderare, și Salarii a unei companii numite Grupul Jupyter Vom căuta valori cu mai multe criterii folosind INDEX, MATCH, XLOOKUP, și Funcțiile FILTRULUI Iată o prezentare generală a setului de date pentru sarcina noastră de astăzi.

Acum vom încerca să căutăm valori care îndeplinesc diverse tipuri de criterii multiple din acest set de date.

Metoda 1: Căutarea mai multor criterii de tip AND

Mai întâi de toate, să încercăm să căutăm câteva criterii multiple de ȘI tip. Aici, ȘI de tip criterii multiple înseamnă că o valoare trebuie să satisfacă toate criteriile pentru a fi selectată. Să încercăm să găsim un angajat cu un ID mai mare decât 400 și un salariu mai mare de $40000 Puteți îndeplini sarcina în 3 moduri diferite.

1.1 Combinați funcțiile INDEX și MATCH în rânduri și coloane

Înainte de a trece la punctul principal, puteți să aruncați o privire la INDEX și MATCH Funcțiile Excel. Vom afla angajatul cu un număr de ID mai mare decât 400 și un salariu mai mare de $40000 folosind INDEX-MATCH Formula: Să urmăm instrucțiunile de mai jos:

Pași:

  • Mai întâi de toate, selectați celula G7 și scrieți următoarea formulă.
=INDEX(C5:C16,MATCH(1,(B5:B16>400)*(E5:E16>40000),0),1)

  • După aceea, apăsați Introduceți pe tastatură. Ca urmare, am găsit un angajat cu o ID mai mare decât 400 și un salariu mai mare de $40000 , Richard Samuelson .

Repartizarea formulei
  • B5:B16>400 trece prin toate ID-uri în coloană B și returnează o matrice de ADEVĂRAT și FALSE , ADEVĂRAT atunci când un ID este mai mare decât 400 , în caz contrar FALSE .
  • E5:E16>40000 trece prin toate salarii în coloană E și returnează o matrice de ADEVĂRAT și FALSE , ADEVĂRAT atunci când un salariu este mai mare decât $40,000 , în caz contrar FALSE.
  • (B5:B16>400)*(E5:E16>40000) înmulțește cele două matrici de ADEVĂRAT și FALSE , și returnează un 1 atunci când ID este mai mare decât 400 iar salariul este mai mare decât $40,000 . în caz contrar se returnează 0 .
  • MATCH(1,(B5:B16>400)*(E5:E16>40000),0) trece prin matricea (B5:B16>400)*(E5:E16>40000) și returnează numărul de serie al primului 1 pe care o întâlnește.
  • În acest caz, se returnează 5, deoarece primul 1 se află în numărul de serie 5.
  • În cele din urmă, INDEX(C5:C16,MATCH(1,(B5:B16>400)*(E5:E16>40000),0),1) returnează numele angajatului din intervalul C5:C16 , cu numărul de rânduri egal cu cel al ieșirii din MATCH și numărul de coloană egal cu 1 .
Note Acesta este un Formula Array Așa că nu uitați să apăsați Ctrl + Shift + Enter dacă nu sunteți în Office 365 .
  • Acesta este angajatul necesar cu un ID mai mare decât 400 și un salariu mai mare de $40,000 Acum, dacă înțelegeți acest lucru, puteți să-mi spuneți formula pentru a afla angajatul care s-a alăturat. înainte de 31 decembrie 2009 , dar primește totuși un salariu mai puțin de 25.000 de dolari .
  • După aceea, introduceți formula de mai jos în celulă G7 .
=INDEX(C5:C16,MATCH(1,(D5:D16

  • Prin urmare, a lovit Introduceți În plus, veți obține Angela Hopkins ca randament al formulei.

Citește mai mult: 7 tipuri de căutări pe care le puteți utiliza în Excel

1.2 Utilizarea funcției XLOOKUP

Putem îndeplini sarcina anterioară folosind XLOOKUP Dar nu uitați, XLOOKUP este disponibil numai în Office 365 Înainte de a trece la punctul principal, puteți arunca o privire la XLOOKUP din Excel. Acum, aflăm angajatul care are un ID mai mare decât 400 și un salariu mai mare de $40,000 folosind XLOOKUP Să urmăm instrucțiunile de mai jos pentru a învăța!

Pași:

  • În primul rând, introduceți formula de mai jos în celulă G7 .
=XLOOKUP(1,(B5:B16>400)*(E5:E16>40000),C5:C16)

  • Ca urmare, avem același angajat ca și mai devreme, Richard Samuelson Acesta este numele angajatului care are un ID mai mare decât 400 și un salariu mai mare de $40,000 .

Repartizarea formulei
  • (B5:B16>400)*(E5:E16>40000) returnează o matrice de 1 și 0 , 1 atunci când ID este mai mare decât 400 iar salariul este mai mare decât $40,000 . 0 altfel.
  • XLOOKUP(1,(B5:B16>400)*(E5:E16>40000),C5:C16) mai întâi caută 1 în matrice (B5:B16>400)*(E5:E16>40000). Atunci când găsește una, returnează valoarea din celula adiacentă din intervalul C5:C16 .

Citește mai mult: Cum se utilizează funcția LOOKUP în Excel (4 exemple adecvate)

1.3 Aplicarea funcției FILTER

The INDEX-MATCH și XLOOKUP au o limitare. Dacă mai multe valori îndeplinesc criteriile date, ele returnează doar prima valoare. De exemplu, în exemplul anterior, dacă vă uitați cu atenție, veți vedea că există două angajați cu un ID mai mare decât 400 și un salariu mai mare de $40,000 .ei sunt Richard Samuelson și Usman Malik. Dar, în schimb, a INDEX-MATCH și XLOOKUP formulele se întorc doar prima angajat, Richard Samuelson Pentru a obține toate valorile care îndeplinesc criteriile date, puteți utiliza funcția FILTRU din Excel. Dar nu uitați că funcția FILTRU este, de asemenea, disponibilă numai în Office 365 .

Pași:

  • Pentru a afla care sunt angajații cu un ID mai mare decât 400 și un salariu mai mare de $40,000 la FILTRU formula va fi:
=FILTER(C5:C16,(B5:B16>400)*(E5:E16>40000))

  • După aceea, de data aceasta avem toți angajații care îndeplinesc toate criteriile, Richard Samuelson și Usman Malik .

Repartizarea formulei
  • (B5:B16>400)*(E5:E16>40000) returnează o matrice de 1 și 0 , 1 atunci când ID-ul este mai mare de 400 și salariul este mai mare de 40.000 de dolari. 0 în caz contrar (a se vedea INDEX-MATCH secțiune).
  • FILTER(C5:C16,(B5:B16>400)*(E5:E16>40000)) trece prin toate valorile din matrice (B5:B16>400)*(E5:E16>40000), și când găsește un 1 , se returnează valoarea adiacentă din intervalul C5:C16 .
  • Astfel, obținem toți angajații cu un ID mai mare decât 400 și un salariu mai mare de $40,000 .
  • Acum, dacă ați înțeles acest lucru, îmi puteți spune formula pentru a afla angajații care au intrat în perioada dintre 1 ianuarie 2014, și 31 decembrie 2016 , dar a primit un salariu de cel puțin 30.000 de dolari Da, ai dreptate. Formula va fi:
=FILTER(C5:C16,(D5:D16>=DATE(2014,1,1))*(D5:D16=30000))

Citește mai mult: Cum să căutați mai multe valori în Excel (10 moduri)

Metoda 2: Căutarea mai multor criterii de tip OR

Acum, vom încerca să căutăm câteva valori care să satisfacă mai multe criterii de OR tip. Aici, OR înseamnă că o valoare trebuie să satisfacă cel puțin un criteriu dintre toate criteriile pentru a fi selectată. Să încercăm să aflăm angajatul care s-a angajat înainte de 1 ian, 2010 sau primește un salariu mai mare de $30,000 .

2.1 Îmbinarea funcțiilor INDEX și MATCH în intervalul de date

Faceți clic aici pentru a vizita site-ul INDEX și faceți clic aici pentru a vizita pagina MATCH înainte de a continua, dacă doriți.

Pași:

  • The INDEX-MATCH formula va fi așa cum se arată în caseta de formulare de mai jos.
=INDEX(C5:C16,MATCH(TRUE,((D5:D1630000))>0,0),1)

  • Vezi, avem Jack Simpson , primul angajat cu o dată de intrare înainte de 1 ianuarie 2010 , sau un salariu mai mare de 30.000 de dolari . dar sunt mult mai mulți angajați. Folosind INDEX-MATCH, îl primim doar pe primul.
  • Vom aduna toți angajații mai târziu, folosind FILTRU Acesta este angajatul necesar care corespunde cel puțin unui criteriu.

Repartizarea formulei
  • D5:D16 ="" strong=""> returnează o matrice de ADEVĂRAT și FALSE . ADEVĂRAT în cazul în care data aderării din coloana D este mai mică de 1 ianuarie 2010. FALSE altfel.
  • E5:E16>30000 returnează, de asemenea, o matrice de ADEVĂRAT și FALSE . ADEVĂRAT atunci când salariul este mai mare de 30.000 de dolari. FALSE altfel.
  • (D5:D1630000) însumează cele două tablouri și returnează un alt tablou de 0, 1, sau 2 . 0 atunci când niciun criteriu nu este îndeplinit, 1 atunci când este îndeplinit un singur criteriu și 2 atunci când ambele criterii sunt îndeplinite.
  • ((D5:D1630000))>0 trece prin toate valorile din matrice (D5:D1630000) și returnează ADEVĂRAT în cazul în care valoarea este mai mare decât 0 ( 1 și 2 ), și FALSE în caz contrar ( 0 ).
  • MATCH(TRUE,((D5:D1630000))>0,0) trece prin toate valorile din matrice ((D5:D1630000))>0 și returnează primul număr de serie în care primește un ADEVĂRAT .
  • În acest caz, se returnează 3 pentru că primul ADEVĂRAT este în serie 3 .
  • În cele din urmă, INDEX(C5:C16,MATCH(TRUE,((D5:D1630000))>0,0),1) returnează numele angajatului din intervalul C5:C16 cu numărul de serie returnat de către MATCH funcție.

Acum, dacă ați înțeles acest lucru, îmi puteți spune formula pentru a afla angajatul cu un ID mai puțin de 300, sau o dată de aderare mai mică de ianuarie 1, 2012, sau un salariu mai mare de $30,000 ?

Da, aveți dreptate. Formula va fi:

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

Citește mai mult: Cum să căutați text în Excel (7 metode adecvate)

2.2 Aplicarea funcției XLOOKUP

Puteți realiza aceeași sarcină folosind funcția XLOOKUP din Excel. XLOOKUP este disponibil numai în Office 365 .

Pași:

  • Formula pentru a găsi angajatul cu o dată de angajare anterioară lunii ianuarie 1, 2010, sau un salariu mai mare de $30,000 va fi:
=XLOOKUP(TRUE,((D5:D1630000))>0,C5:C16)

  • Vedeți, avem același angajat ca și mai devreme, Jack Simpson Dar, ca și în cazul INDEX-MATCH formula, mai mulți angajați îndeplinesc criteriile date. Noi l-am obținut doar pe primul.

Repartizarea formulei
  • ((D5:D1630000))>0 returnează ADEVĂRAT atunci când cel puțin unul dintre cele două criterii este îndeplinit, în caz contrar FALSE A se vedea secțiunea de mai sus.
  • XLOOKUP(TRUE,((D5:D1630000))>0,C5:C16) apoi returnează numele angajatului din coloana C5:C16 , unde primește primul ADEVĂRAT .

Citește mai mult: Cum să căutați o valoare dintr-o altă foaie în Excel (3 metode simple)

2.3 Utilizarea funcției FILTER

În cele din urmă, vom îndeplini aceeași sarcină folosind FILTRU în Excel. Funcția FILTRU este disponibilă numai în Office 365 De data aceasta vom primi toți angajații care s-au alăturat înainte. 1 ianuarie 2010, sau au primit salarii mai mari de $30,000 .

Pași:

  • Formula va fi aceeași cu cea prezentată în caseta de formulare de mai jos.
=FILTER(C5:C16,((D5:D1630000))>0)

  • Astfel, se returnează toți angajații care îndeplinesc cel puțin unul dintre criteriile date.
  • Vedeți, de data aceasta am luat toți angajații care îndeplinesc criteriile noastre date, data de intrare înainte de 1 ianuarie 2010, sau un salariu mai mare de $30,000 .

Repartizarea formulei
  • ((D5:D1630000))>0 returnează ADEVĂRAT atunci când cel puțin unul dintre cele două criterii este îndeplinit, în caz contrar FALSE . Vezi INDEX-MATCH secțiune.
  • FILTER(C5:C16,((D5:D1630000))>0) trece prin toate celulele din intervalul C5:C16 dar le returnează doar pe acelea atunci când întâlnește un ADEVĂRAT .

Citește mai mult: Cum să căutați un tabel în Excel (8 metode)

Concluzie

Folosind aceste metode, puteți căuta o valoare care să satisfacă mai multe criterii din orice set de date. Cunoașteți alte metode sau aveți întrebări? Nu ezitați să ne întrebați.

Hugh West este un trainer și analist Excel cu o experiență de peste 10 ani în industrie. Deține o diplomă de licență în contabilitate și finanțe și un master în administrarea afacerilor. Hugh are o pasiune pentru predare și a dezvoltat o abordare unică de predare care este ușor de urmărit și de înțeles. Cunoștințele sale experte despre Excel au ajutat mii de studenți și profesioniști din întreaga lume să-și îmbunătățească abilitățile și să exceleze în cariera lor. Prin blogul său, Hugh își împărtășește cunoștințele lumii, oferind tutoriale gratuite Excel și instruire online pentru a ajuta persoanele și companiile să-și atingă întregul potențial.