Opzoeken met meerdere criteria in Excel (2 eenvoudige manieren)

  • Deel Dit
Hugh West

Als we in Excel werken, moeten we vaak een bepaalde waarde opzoeken in een gegevensverzameling die voldoet aan een of meer criteria. Vandaag laat ik zien hoe u in Excel een of meer waarden kunt opzoeken die voldoen aan meerdere criteria in een gegevensverzameling.

Download Praktijk Werkboek

Download dit oefenwerkboek om te oefenen terwijl u dit artikel leest.

Opzoeken met meerdere criteria.xlsx

2 Geschikte manieren om op te zoeken met meerdere criteria in Excel

Kijk naar de gegevensset hieronder. We hebben de ID's van werknemers, namen van werknemers, datums van indiensttreding, en Salarissen van een bedrijf genaamd Jupyter Groep We zullen waarden met meerdere criteria opzoeken met behulp van de INDEX, MATCH, XLOOKUP, en FILTER-functies Hier is een overzicht van de dataset voor onze taak van vandaag.

Nu gaan we proberen waarden op te zoeken die voldoen aan verschillende soorten meervoudige criteria uit deze reeks gegevens.

Methode 1: Opzoeken van meerdere criteria van het type AND

Laten we allereerst proberen een aantal meervoudige criteria op te zoeken van EN type. Hier, EN type meerdere criteria betekent dat één waarde aan alle criteria moet voldoen om geselecteerd te worden. Laten we proberen een werknemer te vinden met een ID groter dan 400 en een salaris van meer dan $40000 U kunt de taak volbrengen in 3 verschillende manieren.

1.1 INDEX- en MATCH-functies combineren in rijen en kolommen

Voordat u naar het hoofdpunt gaat, kunt u een blik werpen op de INDEX en MATCH functies van Excel. We zullen de werknemer met een ID groter dan 400 en een salaris van meer dan $40000 met behulp van de INDEX-MATCH formule. Laten we de onderstaande instructies volgen:

Stappen:

  • Selecteer eerst de cel G7 en schrijf de volgende formule op.
=INDEX(C5:C16,MATCH(1,(B5:B16>400)*(E5:E16>40000),0),1)

  • Druk daarna op Ga naar op uw toetsenbord. Als gevolg daarvan hebben we een werknemer gevonden met een ID groter dan 400 en een salaris van meer dan $40000 , Richard Samuelson .

Formuleverdeling
  • B5:B16>400 gaat door alle ID's in kolom B en geeft een array van WARE en FALSE , WARE wanneer een ID is groter dan 400 anders FALSE .
  • E5:E16>40000 gaat door alle salarissen in kolom E en geeft een array van WARE en FALSE , WARE wanneer een salaris hoger is dan $40,000 anders FALSE.
  • (B5:B16>400)*(E5:E16>40000) vermenigvuldigt de twee matrices van WARE en FALSE en geeft een 1 wanneer de ID is groter dan 400 en het salaris is groter dan $40,000 . anders geeft 0 .
  • MATCH(1,(B5:B16>400)*(E5:E16>40000),0) gaat door de array (B5:B16>400)*(E5:E16>40000) en geeft het serienummer van de eerste 1 die het tegenkomt.
  • In dit geval geeft het 5 omdat de eerste 1 in serienummer 5 zit.
  • Eindelijk, INDEX(C5:C16,MATCH(1,(B5:B16>400)*(E5:E16>40000),0),1) geeft de naam van de werknemer uit de reeks C5:C16 waarvan het rijnummer gelijk is aan de uitvoer van de MATCH functie en kolomnummer gelijk aan 1 .
Opmerkingen Dit is een Matrixformule Dus vergeet niet om op Ctrl + Shift + Enter tenzij je in Office 365 .
  • Dit is de vereiste werknemer met een ID groter dan 400 en een salaris van meer dan $40,000 Nu, als u dit begrijpt, kunt u mij dan de formule vertellen om de werknemer te achterhalen die in dienst is getreden... vóór 31 december 2009 maar ontvangt toch een salaris minder dan 25.000 dollar .
  • Daarna typt u de onderstaande formule in cel G7 .
=INDEX(C5:C16,MATCH(1,(D5:D16

  • Dus, raak Ga naar Verder krijg je Angela Hopkins als het rendement van de formule.

Lees meer: 7 soorten opzoekingen die u in Excel kunt gebruiken

1.2 De functie XLOOKUP gebruiken

We kunnen de vorige taak uitvoeren met de XLOOKUP functie van Excel ook. Maar onthoud, XLOOKUP is alleen beschikbaar in Office 365 Voordat u naar het hoofdpunt gaat, kunt u een blik werpen op de XLOOKUP functie van Excel. Nu vinden we de werknemer met een ID groter dan 400 en een salaris van meer dan $40,000 met behulp van de XLOOKUP functie. Laten we de onderstaande instructies volgen om het te leren!

Stappen:

  • Typ eerst de onderstaande formule in cel G7 .
=XLOOKUP(1,(B5:B16>400)*(E5:E16>40000),C5:C16)

  • Daardoor hebben we dezelfde werknemer als eerder, Richard Samuelson Dit is de naam van de werknemer met een ID groter dan 400 en een salaris van meer dan $40,000 .

Formuleverdeling
  • (B5:B16>400)*(E5:E16>40000) geeft een array van 1 en 0 , 1 wanneer de ID is groter dan 400 en het salaris is groter dan $40,000 . 0 anders.
  • XLOOKUP(1,(B5:B16>400)*(E5:E16>40000),C5:C16) zoekt eerst naar 1 in de array (B5:B16>400)*(E5:E16>40000). Wanneer het er een vindt, geeft het de waarde terug van de aangrenzende cel in het bereik C5:C16 .

Lees meer: Hoe de LOOKUP-functie in Excel gebruiken (4 geschikte voorbeelden)

1.3 Toepassing van de FILTER-functie

De INDEX-MATCH en de XLOOKUP formules hebben één beperking. Als meer dan één waarde aan de opgegeven criteria voldoet, geven ze alleen de eerste waarde terug. Bijvoorbeeld, in het eerdere voorbeeld, als u goed kijkt, zult u zien dat er twee werknemers met een ID groter dan 400 en een salaris van meer dan $40,000 Het zijn Richard Samuelson en Usman Malik. Maar de INDEX-MATCH en de XLOOKUP formules terug alleen de eerste werknemer, Richard Samuelson Om alle waarden te krijgen die aan de opgegeven criteria voldoen, kun je de FILTER functie van Excel. Maar vergeet niet, de FILTER functie is ook alleen beschikbaar in Office 365 .

Stappen:

  • Om de werknemers met een ID groter dan 400 en een salaris van meer dan $40,000 de FILTER formule zal zijn:
=FILTER(C5:C16,(B5:B16>400)*(E5:E16>40000))

  • Daarna hebben we alle medewerkers die alle criteria handhaven, Richard Samuelson en Usman Malik .

Formuleverdeling
  • (B5:B16>400)*(E5:E16>40000) geeft een array van 1 en 0 , 1 wanneer de ID groter is dan 400 en het salaris meer dan $40.000 bedraagt. 0 anders (Zie de INDEX-MATCH sectie).
  • FILTER(C5:C16,(B5:B16>400)*(E5:E16>40000)) gaat door alle waarden in de array (B5:B16>400)*(E5:E16>40000), en als het een 1 geeft het de aangrenzende waarde uit het bereik C5:C16 .
  • Zo krijgen we alle werknemers met een ID groter dan 400 en een salaris van meer dan $40,000 .
  • Nu, als u dit begrijpt, kunt u mij dan de formule vertellen om de werknemers te vinden die tussen 1 januari 2014, en 31 december 2016 maar ontving een salaris van ten minste 30.000 dollar Ja. Je hebt gelijk. De formule zal zijn:
=FILTER(C5:C16,(D5:D16>=DATE(2014,1,1))*(D5:D16=30000))

Lees meer: Hoe meerdere waarden opzoeken in Excel (10 manieren)

Methode 2: Meerdere criteria van OR-type opzoeken

Nu zullen we proberen enkele waarden op te zoeken die voldoen aan meerdere criteria van OF type. Hier, OF type criteria betekent dat een waarde aan ten minste één criterium van alle criteria moet voldoen om te worden geselecteerd. Laten we proberen de werknemer te vinden die eerder in dienst is gekomen 1 jan, 2010 of een salaris ontvangt dat hoger is dan $30,000 .

2.1 INDEX- en MATCH-functies samenvoegen in datumbereik

Klik hier om de INDEX functie en klik hier om de MATCH functie voordat u verder gaat, als u dat wenst.

Stappen:

  • De INDEX-MATCH formule wordt zoals in onderstaand formulevak.
=INDEX(C5:C16,MATCH(TRUE,((D5:D1630000))>0,0),1)

  • Kijk, we hebben Jack Simpson de eerste werknemer met een toetredingsdatum vóór 1 januari 2010 of een salaris meer dan 30.000 dollar Maar er zijn veel meer werknemers. INDEX-MATCH, krijgen we alleen de eerste.
  • We zullen alle werknemers later samenbrengen met behulp van de FILTER Dit is de vereiste werknemer die aan minstens één criterium voldoet.

Formuleverdeling
  • D5:D16 ="" strong=""> geeft een array van WARE en FALSE . WARE wanneer de toetredingsdatum in kolom D minder is dan 1 januari 2010. FALSE anders.
  • E5:E16>30000 geeft ook een array van WARE en FALSE . WARE wanneer het salaris hoger is dan 30.000 dollar. FALSE anders.
  • (D5:D1630000) voegt de twee arrays samen en geeft een andere array van 0, 1, of 2 . 0 wanneer aan geen enkel criterium is voldaan, 1 wanneer slechts aan één criterium is voldaan en 2 wanneer aan beide criteria is voldaan.
  • ((D5:D1630000))>0 gaat door alle waarden van de array (D5:D1630000) en retourneert WARE als de waarde groter is dan 0 ( 1 en 2 ), en FALSE anders ( 0 ).
  • MATCH(TRUE,((D5:D1630000))>0,0) gaat door alle waarden in de array ((D5:D1630000))>0 en geeft het eerste serienummer terug waar het een WARE .
  • In dit geval keert 3 omdat de eerste WARE is in serie 3 .
  • Eindelijk, INDEX(C5:C16,MATCH(TRUE,((D5:D1630000))>0,0),1) geeft de naam van de werknemer uit de reeks C5:C16 met het serienummer dat de MATCH functie.

Als u dit begrijpt, kunt u mij dan de formule vertellen om de werknemer met een ID minder dan 300, of een toetredingsdatum lager dan januari 1, 2012, of een salaris van meer dan $30,000 ?

Ja. Je hebt gelijk. De formule zal zijn:

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

Lees meer: Tekst opzoeken in Excel (7 geschikte methoden)

2.2 De XLOOKUP-functie toepassen

U kunt dezelfde taak uitvoeren met de XLOOKUP functie in Excel. XLOOKUP is alleen beschikbaar in Office 365 .

Stappen:

  • De formule om de werknemer te vinden met een toetredingsdatum vóór januari 1, 2010, of een salaris van meer dan $30,000 zal zijn:
=XLOOKUP(TRUE,((D5:D1630000))>0,C5:C16)

  • Kijk, we hebben dezelfde werknemer als eerder, Jack Simpson Maar net als bij de INDEX-MATCH formule, meer werknemers voldoen aan de gegeven criteria. We hebben alleen de eerste.

Formuleverdeling
  • ((D5:D1630000))>0 geeft terug. WARE wanneer aan ten minste een van de twee criteria is voldaan, en anders FALSE Zie het bovenstaande gedeelte.
  • XLOOKUP(TRUE,((D5:D1630000))>0,C5:C16) geeft dan de naam van de werknemer uit de kolom C5:C16 waar het de eerste WARE .

Lees meer: Hoe een waarde opzoeken in een ander blad in Excel (3 eenvoudige methodes)

2.3 De functie FILTER gebruiken

Ten slotte zullen we dezelfde taak uitvoeren met de FILTER functie in Excel. De FILTER functie is alleen beschikbaar in Office 365 Deze keer krijgen we alle werknemers die eerder in dienst kwamen... 1 januari 2010, of salarissen ontvingen van meer dan $30,000 .

Stappen:

  • De formule zal dezelfde zijn als in het onderstaande formulevak.
=FILTER(C5:C16,((D5:D1630000))>0)

  • Het geeft dus alle werknemers die aan minstens één van de opgegeven criteria voldoen.
  • Kijk, deze keer hebben we alle werknemers die voldoen aan onze gegeven criteria, toetredingsdatum vóór 1 januari 2010, of een salaris van meer dan $30,000 .

Formuleverdeling
  • ((D5:D1630000))>0 geeft terug. WARE wanneer aan ten minste een van de twee criteria is voldaan, en anders FALSE Zie de INDEX-MATCH sectie.
  • FILTER(C5:C16,((D5:D1630000))>0) gaat door alle cellen in het bereik C5:C16 maar geeft alleen die terug wanneer het een WARE .

Lees meer: Een tabel opzoeken in Excel (8 methoden)

Conclusie

Met deze methoden kunt u een waarde opzoeken die voldoet aan meerdere criteria uit een verzameling gegevens. Kent u een andere methode? Of hebt u vragen? Stel ze ons gerust.

Hugh West is een zeer ervaren Excel-trainer en -analist met meer dan 10 jaar ervaring in de branche. Hij heeft een bachelor in Accounting en Finance en een master in Business Administration. Hugh heeft een passie voor lesgeven en heeft een unieke lesaanpak ontwikkeld die gemakkelijk te volgen en te begrijpen is. Zijn deskundige kennis van Excel heeft duizenden studenten en professionals over de hele wereld geholpen hun vaardigheden te verbeteren en uit te blinken in hun carrière. Via zijn blog deelt Hugh zijn kennis met de wereld en biedt hij gratis Excel-tutorials en online trainingen aan om individuen en bedrijven te helpen hun volledige potentieel te bereiken.