วิธีค้นหาด้วยหลายเกณฑ์ใน Excel (2 วิธีง่ายๆ)

  • แบ่งปันสิ่งนี้
Hugh West

ในขณะที่ทำงานใน Excel เราต้องทำเช่นนี้บ่อยๆ เราต้องค้นหาค่าเฉพาะในชุดข้อมูลที่ตรงตามเกณฑ์อย่างน้อยหนึ่งเกณฑ์ วันนี้ฉันจะแสดงวิธีที่คุณสามารถค้นหาค่าหนึ่งค่าหรือมากกว่าที่ตรงตามเกณฑ์ต่างๆ ในชุดข้อมูลใน Excel

ดาวน์โหลดแบบฝึกหัดแบบฝึกหัด

ดาวน์โหลดแบบฝึกหัดแบบฝึกหัดนี้เพื่อใช้ฝึกในขณะที่คุณกำลังอ่าน article.

ค้นหาด้วยหลายเกณฑ์.xlsx

2 วิธีที่เหมาะสมในการค้นหาด้วยหลายเกณฑ์ใน Excel

ดูข้อมูล ตั้งค่าด้านล่าง เรามี รหัสพนักงาน ชื่อพนักงาน วันที่เข้าร่วม และ เงินเดือน ของบริษัทชื่อ Jupyter Group เราจะค้นหาค่าที่มีหลายเกณฑ์โดยใช้ฟังก์ชัน INDEX, MATCH, XLOOKUP, และ FILTER ต่อไปนี้คือภาพรวมของชุดข้อมูลสำหรับงานของเราในวันนี้

ตอนนี้เราจะพยายามค้นหาค่าที่ตรงกับเกณฑ์หลายประเภทจากชุดข้อมูลนี้

วิธีที่ 1: ค้นหาหลายเกณฑ์ของประเภทและ

ก่อนอื่น ลองค้นหาหลายเกณฑ์ของประเภท และ ที่นี่ และ พิมพ์หลายเกณฑ์ หมายความว่า ค่าหนึ่งต้องเป็นไปตามเกณฑ์ทั้งหมดที่จะเลือก ลองหาพนักงานที่มี ID มากกว่า 400 และเงินเดือนมากกว่า $40000 คุณสามารถทำงานให้สำเร็จใน 3 วิธีที่แตกต่างกัน

1.1 รวมฟังก์ชัน INDEX และ MATCH ในแถวและคอลัมน์

ก่อนจะไปที่ประเด็นหลัก คุณอาจไปดูฟังก์ชัน INDEX และ MATCH ของ Excel ก่อน เราจะหาพนักงานที่มี ID มากกว่า 400 และเงินเดือนมากกว่า $40000 โดยใช้สูตร INDEX-MATCH ทำตามคำแนะนำด้านล่าง:

ขั้นตอน:

  • ก่อนอื่น เลือกเซลล์ G7 และจดสูตรต่อไปนี้
=INDEX(C5:C16,MATCH(1,(B5:B16>400)*(E5:E16>40000),0),1)

  • หลังจากนั้น กด Enter บนแป้นพิมพ์ของคุณ เป็นผลให้เราพบพนักงานที่มี ID มากกว่า 400 และเงินเดือนมากกว่า $40000 , Richard Samuelson .

การแจกแจงสูตร
  • B5:B16>400 ผ่าน IDs ในคอลัมน์ B และส่งกลับอาร์เรย์ของ TRUE และ FALSE , TRUE เมื่อ ID มากกว่า 400 มิฉะนั้น FALSE .
  • E5:E16>40000 ผ่าน เงินเดือน ทั้งหมด ในคอลัมน์ E และส่งคืนอาร์เรย์ของ TRUE และ FALSE , TRUE เมื่อเงินเดือนมากกว่า $40,000 มิฉะนั้น FALSE.
  • (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 .
  • หลังจากนั้น พิมพ์สูตรด้านล่างในเซลล์ G7 .
=INDEX(C5:C16,MATCH(1,(D5:D16

  • ดังนั้น กด Enter นอกจากนี้ คุณจะได้รับ แองเจลา ฮอปกินส์ เป็นการกลับมาของสูตร

อ่านเพิ่มเติม: การค้นหา 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)

  • ด้วยเหตุนี้ เราจึงมีพนักงานคนเดิม Richard Samuelson นี่คือชื่อของพนักงานที่มี 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 สูตรมีข้อ จำกัด หนึ่งข้อ หากมีค่ามากกว่าหนึ่งค่าตรงตามเกณฑ์ที่กำหนด ค่าจะส่งกลับเฉพาะค่าแรกเท่านั้น เช่นตัวอย่างที่แล้ว ถ้าสังเกตดีๆ จะพบว่ามี พนักงาน สองคนที่มีรหัสประจำตัว มากกว่า 400 และเงินเดือนมากกว่า 40,000 ดอลลาร์ พวกเขาคือ ริชาร์ด ซามูเอลสัน และ อุสมาน มาลิก. แต่สูตร INDEX-MATCH และ XLOOKUP กลับ เฉพาะพนักงานคนแรก Richard Samuelson หากต้องการรับค่าทั้งหมดที่ตรงตามเกณฑ์ที่กำหนด คุณสามารถใช้ฟังก์ชัน กรอง ของ Excel แต่อย่าลืมว่า ฟังก์ชัน ตัวกรอง มีให้ใช้งานใน Office 365 เท่านั้น

ขั้นตอน:

  • ถึง ค้นหาพนักงานที่มี ID มากกว่า 400 และเงินเดือนมากกว่า $40,000 สูตร FILTER จะเป็น:
=FILTER(C5:C16,(B5:B16>400)*(E5:E16>40000))

  • หลังจากนั้น คราวนี้ เราก็ได้พนักงานที่รักษาเกณฑ์ครบทุกคน Richard Samuelson และ อุสมาน มาลิค .

รายละเอียดสูตร
  • (B5:B16>400)*(E5:E16>40000) ส่งกลับอาร์เรย์ของ 1 และ 0 , 1 เมื่อ ID มากกว่า มากกว่า 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

ตอนนี้ เราจะพยายามค้นหาค่าบางค่าที่ตรงตามเกณฑ์หลายค่า ของประเภท OR ในที่นี้ เกณฑ์ประเภท หรือ หมายความว่าค่าหนึ่งต้องเป็นไปตามเกณฑ์อย่างน้อยหนึ่งเกณฑ์จากเกณฑ์ทั้งหมดที่จะเลือก ลองหาพนักงานที่เข้าร่วมก่อน 1 มกราคม 2010 หรือได้รับเงินเดือนมากกว่า $30,000 .

2.1 รวมฟังก์ชัน INDEX และ MATCH ในช่วงวันที่

คลิกที่นี่เพื่อไปที่ฟังก์ชัน ดัชนี และคลิกที่นี่เพื่อไปที่ฟังก์ชัน จับคู่ ก่อนดำเนินการต่อ หากคุณต้องการ

ขั้นตอน:

  • สูตร INDEX-MATCH จะแสดงในช่องสูตรด้านล่าง
=INDEX(C5:C16,MATCH(TRUE,((D5:D1630000))>0,0),1) <7

  • ดูสิ เรามี Jack Simpson พนักงานคนแรกที่มีวันที่เข้าร่วม ก่อนวันที่ 1 มกราคม 2010 หรือเงินเดือน มากกว่า มากกว่า $30,000 แต่ยังมีพนักงานอีกมากมาย ใช้ INDEX-MATCH, เราจะได้เฉพาะอันแรกเท่านั้น
  • เราจะรวมพนักงานทั้งหมดเข้าด้วยกันในภายหลังโดยใช้ กรอง ในภายหลัง นี่คือพนักงานที่จำเป็นซึ่งตรงกับเกณฑ์อย่างน้อยหนึ่งข้อ

การแยกย่อยสูตร
  • D5:D16 ="" strong=""> คืนค่าอาร์เรย์ของ TRUE และ FALSE TRUE เมื่อวันที่เข้าร่วมในคอลัมน์ D น้อยกว่า 1 มกราคม 2010 FALSE มิฉะนั้น
  • E5:E16>30000 ยังคืนค่าอาร์เรย์ของ TRUE และ FALSE จริง เมื่อเงินเดือนมากกว่า $30,000 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

ตอนนี้ หากคุณเข้าใจไหม ช่วยบอกสูตรการหาพนักงานที่มี รหัส น้อยกว่า 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)

  • ดูสิ เรามีพนักงานคนเดิม Jack Simpson แต่เช่นเดียวกับสูตร INDEX-MATCH มีพนักงานจำนวนมากขึ้นที่ตรงตามเกณฑ์ที่กำหนด เรามีอันแรกเท่านั้น

รายละเอียดของสูตร
  • ((D5: D1630000))>0 ส่งคืน TRUE เมื่อเป็นไปตามเกณฑ์อย่างน้อยหนึ่งในสองเกณฑ์ มิฉะนั้น FALSE ดูส่วนด้านบน
  • XLOOKUP(TRUE,((D5:D1630000))>0,C5:C16) จากนั้นส่งคืนชื่อพนักงานจากคอลัมน์ C5:C16 ซึ่งจะได้รับ TRUE ตัวแรก

อ่านเพิ่มเติม: วิธีค้นหาค่าจากชีตอื่นใน Excel (3 วิธีง่ายๆ )

2.3 การใช้ฟังก์ชัน FILTER

สุดท้าย เราจะทำงานเดียวกันให้สำเร็จโดยใช้ฟังก์ชัน 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

อ่านเพิ่มเติม: วิธีค้นหา a ตารางใน Excel (8 วิธี)

สรุป

เมื่อใช้วิธีการเหล่านี้ คุณสามารถค้นหาค่าที่ตรงกับเกณฑ์หลายข้อจากข้อมูลชุดใดก็ได้ คุณรู้วิธีอื่นหรือไม่? หรือคุณมีคำถามใดๆ? อย่าลังเลที่จะถามเรา

Hugh West เป็นผู้ฝึกอบรมและนักวิเคราะห์ Excel ที่มีประสบการณ์สูงและมีประสบการณ์มากกว่า 10 ปีในอุตสาหกรรมนี้ เขาสำเร็จการศึกษาระดับปริญญาตรีสาขาการบัญชีและการเงิน และปริญญาโทสาขาบริหารธุรกิจ Hugh มีความหลงใหลในการสอนและได้พัฒนาแนวทางการสอนที่เป็นเอกลักษณ์ซึ่งง่ายต่อการติดตามและเข้าใจ ความรู้ความเชี่ยวชาญของเขาเกี่ยวกับ Excel ช่วยให้นักเรียนและผู้เชี่ยวชาญหลายพันคนทั่วโลกพัฒนาทักษะและความเป็นเลิศในอาชีพการงาน ฮิวจ์แบ่งปันความรู้ของเขากับคนทั้งโลกผ่านบล็อก โดยเสนอบทช่วยสอน Excel ฟรีและการฝึกอบรมออนไลน์เพื่อช่วยให้บุคคลและธุรกิจบรรลุศักยภาพสูงสุดของตนเอง