สารบัญ
ในขณะที่ทำงานใน 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 .
- นี่คือพนักงานที่จำเป็นซึ่งมี 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 วิธี)
สรุป
เมื่อใช้วิธีการเหล่านี้ คุณสามารถค้นหาค่าที่ตรงกับเกณฑ์หลายข้อจากข้อมูลชุดใดก็ได้ คุณรู้วิธีอื่นหรือไม่? หรือคุณมีคำถามใดๆ? อย่าลังเลที่จะถามเรา