Hur man söker med flera kriterier i Excel (2 enkla sätt)

  • Dela Detta
Hugh West

När vi arbetar i Excel måste vi ofta göra detta. Vi ska söka upp ett visst värde i en datamängd som uppfyller ett eller flera kriterier. Idag ska jag visa hur du kan söka upp ett eller flera värden som uppfyller flera kriterier i en datamängd i Excel.

Ladda ner övningsboken

Ladda ner den här arbetsboken för att träna medan du läser den här artikeln.

Uppslag med flera kriterier.xlsx

2 lämpliga sätt att söka med flera kriterier i Excel

Titta på datamängden nedan. Vi har följande Anställdas ID, anställdas namn, anslutningsdatum, och Löner i ett företag som heter Jupyter-gruppen Vi kommer att söka upp värden med flera kriterier med hjälp av INDEX, MATCH, XLOOKUP, och FILTER-funktioner Här är en översikt över datasetet för dagens uppgift.

Nu ska vi försöka söka efter värden som uppfyller olika typer av multipla kriterier från denna uppsättning data.

Metod 1: Sök upp flera kriterier av typen AND

Låt oss först och främst försöka hitta några kriterier för flera OCH typ. Här, OCH typ flera kriterier innebär att ett värde måste uppfylla alla kriterier för att väljas. Låt oss försöka hitta en anställd med en ID är större än 400 och en lön som är högre än $40000 Du kan utföra uppgiften på följande sätt 3 olika sätt.

1.1 Kombinera INDEX- och MATCH-funktionerna i rader och kolumner

Innan du går vidare till huvudpunkten kan du gå och ta en titt på INDEX och MATCH funktioner i Excel. Vi kommer att ta reda på den anställde med en ID är större än 400 och en lön som är högre än $40000 med hjälp av INDEX-MATCH Vi följer instruktionerna nedan:

Steg:

  • Välj först och främst cell G7 och skriv ned följande formel.
=INDEX(C5:C16,MATCH(1,(B5:B16>400)*(E5:E16>40000),0),1)

  • Därefter trycker du på Gå in på på ditt tangentbord. Som ett resultat av detta har vi hittat en anställd med en ID är större än 400 och en lön som är högre än $40000 , Richard Samuelson .

Fördelning av formler
  • B5:B16>400 går igenom alla de ID:er i kolumnen B och returnerar en matris av TRUE och FALSK , TRUE när en ID är större än 400 , i annat fall FALSK .
  • E5:E16>40000 går igenom alla de löner i kolumnen E och returnerar en matris av TRUE och FALSK , TRUE när lönen är högre än $40,000 , i annat fall FALSKT.
  • (B5:B16>400)*(E5:E16>40000) multiplicerar de två matriserna av TRUE och FALSK , och returnerar en 1 när den ID är större än 400 och lönen är högre än $40,000 . Annars returneras 0 .
  • MATCH(1,(B5:B16>400)*(E5:E16>40000),0) går genom matrisen (B5:B16>400)*(E5:E16>40000) och returnerar serienumret för den första 1 som den möter.
  • I det här fallet returneras 5 eftersom den första 1:an finns i serienummer 5.
  • Slutligen, INDEX(C5:C16,MATCH(1,(B5:B16>400)*(E5:E16>40000),0),1) returnerar namnet på den anställde från intervallet C5:C16 , med ett radnummer som är lika med utgången av MATCH funktion och kolumnnummer som är lika med 1 .
Anteckningar Detta är en Formel för arrayer Glöm inte att trycka på Ctrl + Shift + Enter om du inte är i Office 365 .
  • Detta är den arbetstagare som krävs med en ID är större än 400 och en lön som är högre än $40,000 Om du förstår det här, kan du berätta formeln för att ta reda på vilken anställd som gick med i före den 31 december 2009 , men får ändå lön mindre än 25 000 dollar .
  • Därefter skriver du nedanstående formel i cellen G7 .
=INDEX(C5:C16,MATCH(1,(D5:D16

  • Därför är träff Gå in på Dessutom får du Angela Hopkins som återbäring i formeln.

Läs mer: 7 typer av uppslag som du kan använda i Excel

1.2 Använda XLOOKUP-funktionen

Vi kan utföra den tidigare uppgiften med hjälp av XLOOKUP funktionen i Excel också. Men kom ihåg, XLOOKUP är endast tillgänglig i Office 365 Innan du går vidare till huvudpunkten kan du ta en titt på följande XLOOKUP funktionen i Excel. Nu hittar vi den anställde som har en ID är större än 400 och en lön som är högre än $40,000 med hjälp av XLOOKUP Vi följer instruktionerna nedan för att lära oss!

Steg:

  • Först skriver du nedanstående formel i cellen G7 .
=XLOOKUP(1,(B5:B16>400)*(E5:E16>40000),C5:C16)

  • Resultatet är att vi har samma anställd som tidigare, Richard Samuelson . Detta är namnet på den anställde som har en ID är större än 400 och en lön som är högre än $40,000 .

Fördelning av formler
  • (B5:B16>400)*(E5:E16>40000) returnerar en matris av 1 och 0 , 1 när den ID är större än 400 och lönen är högre än $40,000 . 0 annars.
  • XLOOKUP(1,(B5:B16>400)*(E5:E16>40000),C5:C16) söker först efter 1 i matrisen (B5:B16>400)*(E5:E16>40000). När den hittar en cell returnerar den värdet från den intilliggande cellen i intervallet C5:C16 .

Läs mer: Hur man använder LOOKUP-funktionen i Excel (4 lämpliga exempel)

1.3 Tillämpning av FILTER-funktionen

INDEX-MATCH och XLOOKUP formeln har en begränsning. Om mer än ett värde uppfyller de givna kriterierna returnerar de bara det första värdet. Om du tittar noga i det tidigare exemplet kommer du att se att det finns två anställda med en ID är större än 400 och en lön som är högre än $40,000 .De är Richard Samuelson och Usman Malik. Men den INDEX-MATCH och XLOOKUP formlerna återger endast den första anställd, Richard Samuelson Om du vill få fram alla värden som uppfyller de givna kriterierna kan du använda FILTER funktionen i Excel. Men kom ihåg att FILTER funktionen är också endast tillgänglig i Office 365 .

Steg:

  • För att ta reda på vilka anställda som har en ID är större än 400 och en lön som är högre än $40,000 FILTER formeln kommer att vara:
=FILTER(C5:C16,(B5:B16>400)*(E5:E16>40000))

  • Därefter har vi den här gången fått alla anställda som uppfyller alla kriterier, Richard Samuelson och Usman Malik .

Fördelning av formler
  • (B5:B16>400)*(E5:E16>40000) returnerar en matris av 1 och 0 , 1 när ID är större än 400 och lönen är större än 40 000 dollar. 0 i annat fall (se INDEX-MATCH avsnitt).
  • FILTER(C5:C16,(B5:B16>400)*(E5:E16>40000)) går igenom alla värden i matrisen (B5:B16>400)*(E5:E16>40000), och när den hittar en 1 återges det intilliggande värdet från intervallet C5:C16 .
  • På så sätt får vi alla anställda med ett ID är större än 400 och en lön som är högre än $40,000 .
  • Om du förstår det här, kan du berätta formeln för att ta reda på vilka anställda som började mellan Den 1 januari 2014, och 31 december 2016 , men fick en lön på minst 30 000 dollar ? Ja, du har rätt, formeln blir:
=FILTER(C5:C16,(D5:D16>=DATE(2014,1,1))*(D5:D16=30000))

Läs mer: Hur man söker upp flera värden i Excel (10 sätt)

Metod 2: Sök upp flera kriterier av OR-typ

Nu ska vi försöka hitta några värden som uppfyller flera av kriterierna för ELLER typ. Här, ELLER typkriterier innebär att ett värde måste uppfylla minst ett kriterium bland alla kriterier för att väljas ut. Låt oss försöka hitta den anställde som började arbeta före 1 jan, 2010 eller får en lön som överstiger $30,000 .

2.1 Slå ihop INDEX- och MATCH-funktionerna i datumintervallet

Klicka här för att besöka INDEX funktion och klicka här för att besöka MATCH funktionen innan du fortsätter, om du vill.

Steg:

  • INDEX-MATCH formeln kommer att se ut som i formlerutan nedan.
=INDEX(C5:C16,MATCH(TRUE,((D5:D1630000))>0,0),1)

  • Se, vi har fått Jack Simpson , den första arbetstagaren med ett tillträdesdatum före den 1 januari 2010 , eller en lön mer än 30 000 dollar Men det finns många fler anställda. INDEX-MATCH, får vi bara den första.
  • Vi kommer att samla alla anställda senare med hjälp av FILTER Detta är den anställde som krävs och som uppfyller minst ett kriterium.

Fördelning av formler
  • D5:D16 ="" strong=""> returnerar en matris av TRUE och FALSK . TRUE när anslutningsdatumet i kolumnen D är mindre än den 1 januari 2010. FALSK annars.
  • E5:E16>30000 returnerar också en matris av TRUE och FALSK . TRUE när lönen är högre än 30 000 dollar. FALSK annars.
  • (D5:D1630000) adderar de två matriserna och returnerar en annan matris med 0, 1, eller . 2 . 0 när inget kriterium är uppfyllt, 1 när endast ett kriterium är uppfyllt och 2 när båda kriterierna är uppfyllda.
  • ((D5:D1630000))>0 går igenom alla värden i matrisen (D5:D1630000) och returnerar TRUE om värdet är större än 0 ( 1 och 2 ), och FALSK annars ( 0 ).
  • MATCH(TRUE,((D5:D1630000))>0,0) går igenom alla värden i matrisen ((D5:D1630000))>0 och returnerar det första serienumret där den får ett TRUE .
  • I det här fallet återges 3 eftersom den första TRUE är i serie. 3 .
  • Slutligen, INDEX(C5:C16,MATCH(TRUE,((D5:D1630000))>0,0),1) returnerar namnet på den anställde från intervallet C5:C16 med det serienummer som returneras av MATCH funktion.

Om du förstår det här, kan du berätta formeln för att ta reda på vilken anställd som har en ID mindre än 300, eller ett anslutningsdatum som är senare än januari 1, 2012, eller en lön som är högre än $30,000 ?

Ja, du har rätt, formeln blir:

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

Läs mer: Hur man söker upp text i Excel (7 lämpliga metoder)

2.2 Tillämpning av XLOOKUP-funktionen

Du kan utföra samma uppgift med hjälp av XLOOKUP funktionen i Excel. XLOOKUP är endast tillgänglig i Office 365 .

Steg:

  • Formeln för att hitta den anställde med ett anställningsdatum före januari 1, 2010, eller en lön som är högre än $30,000 kommer att vara:
=XLOOKUP(TRUE,((D5:D1630000))>0,C5:C16)

  • Vi har samma anställd som tidigare, Jack Simpson . Men som i fallet med INDEX-MATCH formeln, fler anställda uppfyller de givna kriterierna. Vi har bara fått den första.

Fördelning av formler
  • ((D5:D1630000))>0 returnerar TRUE när minst ett av de två kriterierna är uppfyllt, annars FALSK Se avsnittet ovan.
  • XLOOKUP(TRUE,((D5:D1630000))>0,C5:C16) återger sedan den anställdes namn från kolumnen C5:C16 , där den får den första TRUE .

Läs mer: Hur man söker upp ett värde från ett annat ark i Excel (3 enkla metoder)

2.3 Användning av FILTER-funktionen

Slutligen kommer vi att utföra samma uppgift med hjälp av FILTER funktionen i Excel. FILTER funktionen är endast tillgänglig i Office 365 . Den här gången kommer vi att få alla anställda som började innan Den 1 januari 2010, eller fick löner som var högre än $30,000 .

Steg:

  • Formeln blir densamma som visas i formlerutan nedan.
=FILTER(C5:C16,((D5:D1630000))>0)

  • Den returnerar alltså alla anställda som uppfyller minst ett av de angivna kriterierna.
  • Den här gången har vi fått med alla anställda som uppfyller våra givna kriterier, anställningsdatum före Den 1 januari 2010, eller en lön som är högre än $30,000 .

Fördelning av formler
  • ((D5:D1630000))>0 returnerar TRUE när minst ett av de två kriterierna är uppfyllt, annars FALSK . Se INDEX-MATCH sektion.
  • FILTER(C5:C16,((D5:D1630000))>0) går igenom alla celler i intervallet C5:C16 men returnerar endast dessa när den stöter på en TRUE .

Läs mer: Hur man slår upp en tabell i Excel (8 metoder)

Slutsats

Med hjälp av dessa metoder kan du söka upp ett värde som uppfyller flera kriterier i vilken datamängd som helst. Känner du till någon annan metod eller har du några frågor? Fråga oss gärna.

Hugh West är en mycket erfaren Excel-tränare och analytiker med över 10 års erfarenhet i branschen. Han har en kandidatexamen i redovisning och ekonomi och en magisterexamen i företagsekonomi. Hugh har en passion för undervisning och har utvecklat ett unikt undervisningssätt som är lätt att följa och förstå. Hans expertkunskap om Excel har hjälpt tusentals studenter och yrkesverksamma över hela världen att förbättra sina färdigheter och utmärka sig i sina karriärer. Genom sin blogg delar Hugh med sig av sin kunskap med världen, och erbjuder gratis Excel-handledning och onlineutbildning för att hjälpa individer och företag att nå sin fulla potential.