Sadržaj
Dok radimo u Excel-u, to radimo često. Trebamo potražiti određenu vrijednost u skupu podataka koji zadovoljava jedan ili više kriterija. Danas ću vam pokazati kako možete potražiti jednu ili više vrijednosti koje zadovoljavaju više kriterija u skupu podataka u Excel-u.
Preuzmite radnu svesku za vježbe
Preuzmite ovu radnu svesku za vježbanje da biste vježbali dok ovo čitate članak.
Potražite s više kriterija.xlsx
2 prikladna načina za traženje s više kriterija u Excelu
Pogledajte podatke postavljen ispod. Imamo ID-ove zaposlenih, imena zaposlenih, datume pridruživanja, i Plate kompanije pod nazivom Jupyter Group . Tražit ćemo vrijednosti s više kriterija koristeći funkcije INDEX, MATCH, XLOOKUP, i FILTER . Evo pregleda skupa podataka za naš današnji zadatak.
Sada ćemo pokušati pronaći vrijednosti koje zadovoljavaju različite tipove višestrukih kriterija iz ovog skupa podataka.
Metoda 1: Potražite više kriterija tipa I
Prvo, pokušajmo potražiti nekoliko višestrukih kriterija tipa I . Ovdje, I upišite više kriterija znači da jedna vrijednost mora zadovoljiti sve kriterije za odabir. Pokušajmo pronaći zaposlenika s ID većim od 400 i plaćom većom od 40000$ . Zadatak možete izvršiti na 3 različite načine.
1.1 Kombinirajte funkcije INDEX i MATCH u redovima i stupcima
Prije nego što pređete na glavnu stvar, možete otići i baciti pogled na funkcije INDEX i MATCH u Excelu. Zaposlenika sa ID većim od 400 i plaćom većom od 40000$ ćemo saznati koristeći formulu INDEX-MATCH . Slijedimo upute u nastavku:
Koraci:
- Prvo, odaberite ćeliju G7 i zapišite sljedeću formulu.
=INDEX(C5:C16,MATCH(1,(B5:B16>400)*(E5:E16>40000),0),1)
- Nakon toga pritisnite Enter na tastaturi. Kao rezultat toga, pronašli smo zaposlenog sa ID većom od 400 i platom većom od 40000$ , Richard Samuelson .
Raščlamba formule
- B5:B16>400 prolazi kroz sve ID-ovi u koloni B i vraća niz TRUE i FALSE , TRUE kada je ID je veće od 400 , inače NETOČNO .
- E5:E16>40000 prolazi kroz sve plate u koloni E i vraća niz TRUE i FALSE , TRUE kada je plata veća od $40,000 , inače FALSE.
- (B5:B16>400)*(E5:E16>40000) množi dva niza TRUE i FALSE i vraća 1 kada je ID veći od 400 i plata veća od 40.000$ . U suprotnom vraća 0 .
- MATCH(1,(B5:B16>400)*(E5:E16>40000),0) prolazi kroz niz (B5:B16>400)*(E5:E16>40000) i vraća serijski broj prvog 1 na koji naiđe.
- U ovom slučaju, vraća 5 jer je prva 1 u serijskom broju 5.
- Konačno, INDEX(C5:C16,MATCH(1,(B5:B16>400)*(E5) :E16>40000),0),1) vraća ime zaposlenika iz raspona C5:C16 , s brojem reda jednakim izlazu funkcije MATCH i stupca broj jednak 1 .
- Ovo je traženi zaposlenik sa ID većim od 400 i plaćom većom od 40.000$ . Sada, ako razumete ovo, možete li mi reći formulu da saznam zaposlenog koji se pridružio pre 31. decembra 2009 , ali i dalje prima platu manju od 25.000$ .
- Nakon toga, upišite formulu ispod u ćeliju G7 .
=INDEX(C5:C16,MATCH(1,(D5:D16
- Dakle, pritisnite Enter . Nadalje, dobit ćete Angela Hopkins kao povratak formule.
Pročitajte više: 7 vrsta pretraživanja koje možete koristiti u Excelu
1.2 Korištenje funkcije XLOOKUP
Prethodni zadatak možemo izvršiti i pomoću funkcije XLOOKUP u Excelu. Ali zapamtite, XLOOKUP je dostupan samo u Office 365 . Prije nego što pređete na glavnu stvar, možete baciti pogledu funkciji XLOOKUP u Excelu. Sada saznajemo zaposlenika sa ID većim od 400 i plaćom većom od 40.000$ koristeći funkciju XLOOKUP . Slijedite upute u nastavku da naučite!
Koraci:
- Prvo, upišite formulu ispod u ćeliju G7 .
=XLOOKUP(1,(B5:B16>400)*(E5:E16>40000),C5:C16)
- Kao rezultat toga, imamo istog zaposlenika kao i ranije, Richard Samuelson . Ovo je ime zaposlenika sa ID većom od 400 i platom većom od 40.000$ .
Raščlamba formule
- (B5:B16>400)*(E5:E16>40000) vraća niz od 1 i 0 , 1 kada je ID veći od 400 i plata veća od 40.000$ . 0 inače.
- XLOOKUP(1,(B5:B16>400)*(E5:E16>40000),C5:C16) prva traži 1 in niz (B5:B16>400)*(E5:E16>40000). Kada ga pronađe, vraća vrijednost iz susjedne ćelije u rasponu C5:C16 .
Pročitajte više: Kako koristiti funkciju LOOKUP u Excelu (4 pogodna primjera)
1.3 Primjena funkcije FILTER
INDEX-MATCH i XLOOKUP formula ima jedno ograničenje. Ako više od jedne vrijednosti zadovoljava zadane kriterije, vraćaju samo prvu vrijednost. Na primjer, u prethodnom primjeru, ako pažljivo pogledate, naći ćete da ih ima dva zaposlenika sa ID većom od 400 i platom većom od 40.000$ . To su Richard Samuelson i Usman Malik. Ali formule INDEX-MATCH i XLOOKUP vraćaju samo prvog zaposlenog, Richard Samuelson . Da biste dobili sve vrijednosti koje zadovoljavaju zadane kriterije, možete koristiti funkciju FILTER programa Excel. Ali zapamtite, funkcija FILTER je također dostupna samo u Office 365 .
Koraci:
- Do saznajte zaposlenike sa ID većim od 400 i platom većom od 40.000$ formula FILTER će biti:
=FILTER(C5:C16,(B5:B16>400)*(E5:E16>40000))
- Nakon toga, ovaj put imamo sve zaposlene koji održavaju sve kriterije, Richard Samuelson i Usman Malik .
Raščlamba formule
- (B5:B16>400)*(E5:E16>40000) vraća niz 1 i 0 , 1 kada je ID veći od 400, a plata veća od 40.000 dolara. 0 u suprotnom (Pogledajte odjeljak INDEX-MATCH ).
- FILTER(C5:C16,(B5:B16>400)*(E5:E16> ;40000)) prolazi kroz sve vrijednosti u nizu (B5:B16>400)*(E5:E16>40000), i kada pronađe 1 , vraća susjednu vrijednost iz raspona C5:C16 .
- Tako dobijamo sve zaposlenike sa ID većim od 400 i veća plataod $40,000 .
- Sada, ako razumete ovo, možete li mi reći formulu da saznam zaposlene koji su se pridružili između 1. januara 2014. i 31. decembra 2016. , ali ste primili platu od najmanje $30,000 ? Da. Upravu si. Formula će biti:
=FILTER(C5:C16,(D5:D16>=DATE(2014,1,1))*(D5:D16=30000))
Pročitajte više: Kako potražiti više vrijednosti u Excelu (10 načina)
Metoda 2: Potražite više kriterija tipa OR
Sada ćemo pokušati pronaći neke vrijednosti koje zadovoljavaju više kriterija tipa ILI . Ovdje kriterij tipa ILI znači da jedna vrijednost mora zadovoljiti barem jedan kriterij među svim kriterijima koji će biti odabrani. Pokušajmo saznati zaposlenika koji se pridružio prije 1. januara 2010. ili prima platu veću od 30.000$ .
2.1 Spajanje funkcija INDEX i MATCH u rasponu datuma
Kliknite ovdje da posjetite funkciju INDEX i kliknite ovdje da posjetite funkciju MACH prije nego što nastavite, ako želite.
Koraci:
- Formula INDEX-MATCH će biti kao što je prikazano u polju formule ispod.
=INDEX(C5:C16,MATCH(TRUE,((D5:D1630000))>0,0),1)
- Vidite, imamo Jacka Simpsona , prvog zaposlenika sa datumom pridruživanja prije 1. januara 2010. ili platom većom od $30,000 . Ali ima mnogo više zaposlenih. Koristeći INDEX-MATCH, dobijamo samo prvu.
- Sve zaposlene ćemo kasnije okupiti koristeći FILTER funkcija kasnije. Ovo je traženi zaposlenik koji ispunjava barem jedan kriterij.
Raščlamba formule
- D5:D16
="" strong=""> vraća niz TRUE i FALSE . TRUE kada je datum pridruživanja u koloni D manji od 1. januara 2010. FALSE u suprotnom. - E5:E16>30000 također vraća niz TRUE i FALSE . TAČNO kada je plata veća od $30,000. FALSE inače.
- (D5:D1630000) dodaje dva niza i vraća drugi niz 0, 1, ili 2 . 0 kada nijedan kriterij nije zadovoljen, 1 kada je samo jedan kriterij zadovoljen i 2 kada su oba kriterija zadovoljena.
- ((D5:D1630000))>0 prolazi kroz sve vrijednosti niza (D5:D1630000) i vraća TRUE ako je vrijednost veća od 0 ( 1 i 2 ), i FALSE inače ( 0 ).
- MATCH(TRUE,((D5:D1630000))>0,0) prolazi kroz sve vrijednosti u nizu ((D5:D1630000))>0 i vraća prvi serijski broj gdje dobiva TRUE .
- U ovom slučaju, vraća 3 jer je prvi TRUE u serijskom 3 .
- Konačno, INDEX(C5:C16,MATCH(TRUE,((D5:D1630000))>0,0),1) vraća ime zaposlenika iz raspona C5:C16 sa serijskim brojem koji vraća funkcija MATCH .
Sada, akoshvatite ovo, možete li mi reći formulu da saznam zaposlenog sa ID manjim od 300, ili datumom pridruživanja manjim od 1. januara 1, 2012, ili plata veća od 30.000$ ?
Da. Upravu si. Formula će biti:
=INDEX(C5:C16,MATCH(TRUE,((B5:B16<200)+(D5:D1630000))>0,0),1)
Pročitajte više: Kako Potražite tekst u Excelu (7 odgovarajućih metoda)
2.2 Primjena funkcije XLOOKUP
Isti zadatak možete izvršiti pomoću funkcije XLOOKUP u Excelu. XLOOKUP je dostupan samo u Office 365 .
Koraci:
- Formula za pronalaženje zaposlenika sa datum pridruživanja prije 1. januara 2010. ili plata veća od 30.000$ bit će:
=XLOOKUP(TRUE,((D5:D1630000))>0,C5:C16)
- Vidite, imamo istog zaposlenika kao i ranije, Jack Simpson . Ali kao i sa formulom INDEX-MATCH , više zaposlenih ispunjava date kriterijume. Imamo samo prvu.
Raščlamba formule
- ((D5: D1630000))>0 vraća TRUE kada je barem jedan od dva kriterija zadovoljen, u suprotnom FALSE . Pogledajte gornji odjeljak.
- XLOOKUP(TRUE,((D5:D1630000))>0,C5:C16) zatim vraća ime zaposlenika iz kolone C5:C16 , gdje dobiva prvi TRUE .
Pročitajte više: Kako potražiti vrijednost iz drugog lista u Excelu (3 laka metoda )
2.3 Upotreba funkcije FILTER
Konačno ćemoizvršite isti zadatak koristeći funkciju FILTER u Excelu. Funkcija FILTER dostupna je samo u Office 365 . Ovaj put ćemo dobiti sve zaposlene koji su se pridružili prije 1. januara 2010. ili su primili plate veće od 30.000$ .
Koraci:
- Formula će biti ista kao što je prikazano u donjem polju formule.
=FILTER(C5:C16,((D5:D1630000))>0)
- Tako vraća sve zaposlene koji ispunjavaju barem jedan od zadatih kriterija.
- Vidite, ovaj put imamo sve zaposlene koji ispunjavaju naše date kriterije, datum pridruživanja prije 1. januara, 2010, ili plata veća od 30.000$ .
Raščlamba formule
- ((D5:D1630000))>0 vraća TRUE kada je barem jedan od dva kriterija zadovoljen, u suprotnom FALSE . Pogledajte odjeljak INDEX-MATCH .
- FILTER(C5:C16,((D5:D1630000))>0) prolazi kroz sve ćelije u rasponu C5:C16 ali vraća samo one kada naiđe na TRUE .
Pročitajte više: Kako potražiti Tabela u Excelu (8 metoda)
Zaključak
Koristeći ove metode, možete potražiti neku vrijednost koja zadovoljava više kriterija iz bilo kojeg skupa podataka. Znate li neku drugu metodu? Ili imate pitanja? Slobodno nas pitajte.