สารบัญ
วันนี้ฉันจะทำการวิเคราะห์เปรียบเทียบ ฟังก์ชัน XLOOKUP กับ ฟังก์ชัน INDEX-MATCH ใน Excel ในเวอร์ชันก่อนหน้าของ Excel เราเคยใช้ฟังก์ชัน HLOOKUP , VLOOKUP และ INDEX-MATCH เพื่อค้นหา ค่าเฉพาะในช่วงของเซลล์ อย่างไรก็ตาม เมื่อ Office 365 ปรากฏขึ้น Excel ได้จัดเตรียมฟังก์ชันใหม่แบบไดนามิกที่เรียกว่าฟังก์ชัน XLOOKUP เพื่อดำเนินการที่คล้ายกันให้ซับซ้อนยิ่งขึ้น ในบทความนี้ ฉันจะพยายามเปรียบเทียบฟังก์ชันที่ใช้กันอย่างแพร่หลาย XLOOKUP และ INDEX-MATCH
ดาวน์โหลดสมุดงานแบบฝึกหัด
รับไฟล์ตัวอย่างนี้เพื่อความเข้าใจที่ดีขึ้น
XLOOKUP เทียบกับ INDEX-MATCH Functions.xlsx
บทนำเกี่ยวกับฟังก์ชัน XLOOKUP
ฟังก์ชัน XLOOKUP ใช้เพื่อค้นหาค่าเฉพาะภายในช่วงของเซลล์หรืออาร์เรย์ หลังจากนั้นจะส่งกลับนัดแรกที่เกี่ยวข้อง นอกจากนี้ยังแสดงการจับคู่ที่ใกล้เคียงที่สุดหรือใกล้เคียงที่สุดเมื่อไม่มีการจับคู่แบบตรงทั้งหมด
ไวยากรณ์:
=XLOOKUP(lookup_value,lookup_array,return_array,[if_not_found] ,[match_mode],[search_mode])
อาร์กิวเมนต์:
- Lookup_value : เป็นค่าที่เราเป็น ค้นหาในคอลัมน์เฉพาะของช่วง
- Lookup_array : เป็นอาร์เรย์ที่เรากำลังค้นหา lookup_value ได้ทั้งแบบแถวและนัดแรกหรือนัดสุดท้าย หากต้องการรับค่าแรกที่ตรงกัน ให้ตั้งค่า ประเภทการค้นหา อาร์กิวเมนต์เป็น 1 และเพื่อให้ได้ค่าสุดท้ายที่ตรงกัน ให้ตั้งค่าอาร์กิวเมนต์ search_type เป็น -1 แต่ใน INDEX-MATCH คุณไม่มีทางเลือก คุณจะได้รับเฉพาะค่าแรกที่ตรงกันเท่านั้น
- หากต้องการรับนักเรียนคนแรกที่ได้ 100 คุณสามารถใช้สูตร XLOOKUP ใน เซลล์ G5 .
=XLOOKUP(100,D5:D16,C5:C16,"Not Found",0,1)
- คุณจะได้รับนักเรียนคนสุดท้าย ด้วย 100 โดยใช้สูตร XLOOKUP นี้
=XLOOKUP(100,D5:D16,C5:C16,"Not Found",0,-1)
- ในทางกลับกัน คุณจะได้รับเฉพาะค่าแรกที่ตรงกับสูตร INDEX-MATCH นี้เท่านั้น
=INDEX(B5:E16,MATCH(100,D5:D16,0),2)
<07. XLOOKUP และ INDEX-MATCH ในกรณีที่มีค่าการค้นหาหลายค่า
ในตัวอย่างนี้ เราจะแสดง XLOOKUP vs INDEX-MATCH ในกรณีที่มีค่าการค้นหาหลายค่า มีความคล้ายคลึงกันระหว่างสองฟังก์ชันในเรื่องนี้ ทั้งคู่อนุญาตหลาย lookup_values (สูตรอาร์เรย์)
- สำหรับฟังก์ชัน XLOOKUP สูตรต่อไปนี้จะใช้ได้
=XLOOKUP(G5:G8,B5:B16,E5:E16,"Not Found",0,1)
- จากนั้น สำหรับ INDEX-MATCH ฟังก์ชันต่อไปนี้จะทำงานด้วย <11
- ตั้งค่าเริ่มต้นสำหรับกรณีที่ไม่ตรงกัน
- สามารถค้นหาการจับคู่โดยประมาณโดยไม่ต้องเรียงลำดับ lookup_array .
- มีสิทธิ์เข้าถึง เพื่อค้นหาจากทั้งเซลล์แรกและเซลล์สุดท้ายของ lookup_array .
- ทำงานช้ากว่า INDEX-MATCH ฟังก์ชัน
- พร้อมใช้งานใน Office 365 เท่านั้น
- ใช้งานได้ เร็วกว่าฟังก์ชัน XLOOKUP
- ใช้งานได้ใน Excel เวอร์ชันเก่า
- ไม่สามารถจัดการข้อผิดพลาดเมื่อไม่พบการจับคู่
- ต้องการ lookup_array เพื่อจัดเรียงสำหรับการจับคู่โดยประมาณ
- ส่งกลับเฉพาะค่าแรกเมื่อค่าหลายค่าตรงกับ lookup_value .
- Return_array: เป็นคอลัมน์ที่ค่าที่สอดคล้องกันของ lookup_value จะถูกส่งกลับ
=INDEX(B5:E16,MATCH(G5:G8,B5:B16,0),4)
ข้อดี & ข้อเสียของฟังก์ชัน XLOOKUP
มีข้อดีและข้อเสียบางประการของการใช้ฟังก์ชัน XLOOKUP มาดูกันโดยย่อ
ข้อดี
ข้อเสีย
ข้อดี & ข้อเสียของฟังก์ชัน INDEX-MATCH
ฟังก์ชัน INDEX-MATCH ยังมีข้อดีและข้อเสียบางประการดังต่อไปนี้
ข้อดี
ข้อเสีย
สรุป
สุดท้ายนี้ เรามาถึงตอนท้ายของบทความขนาดยาวของเรา ที่นี่ เราพยายามสร้างการวิเคราะห์เปรียบเทียบของฟังก์ชัน XLOOKUP กับ INDEX-MATCH ใน Excel แจ้งให้เราทราบคำแนะนำเชิงลึกของคุณเกี่ยวกับเรื่องนี้ ติดตาม ExcelWIKI สำหรับบทเรียนเพิ่มเติม
คอลัมน์อาร์กิวเมนต์ทางเลือก:
- If_not_found : เป็นค่าที่จะถูกส่งกลับในกรณีที่ lookup_array ไม่มี lookup_value
- Match_mode : เป็นตัวเลขที่แสดงประเภทการจับคู่ของ lookup_value ที่คุณต้องการ นี่เป็นอาร์กิวเมนต์ที่ไม่บังคับ สามารถมีสี่ค่า
- เมื่อเป็น 0 XLOOKUP จะค้นหาข้อมูลที่ตรงกัน (ค่าเริ่มต้น)
- เมื่อเป็น 1 XLOOKUP จะค้นหาข้อมูลที่ตรงกันก่อน หากไม่พบการจับคู่แบบตรงทั้งหมด ก็จะจับคู่ค่าที่น้อยกว่าถัดไป
- เมื่อเป็น -1 XLOOKUP จะค้นหาการจับคู่แบบตรงทั้งหมดก่อน หากไม่พบการจับคู่แบบตรงทั้งหมด ก็จะจับคู่ค่าที่มากกว่าถัดไป
- เมื่อเป็น 2 XLOOKUP จะค้นหาค่าที่ตรงกันโดยประมาณก่อนโดยใช้สัญลักษณ์แทน ( ใช้ได้กับค่าการค้นหาสตริงเท่านั้น)
- Search_mode : เป็นตัวเลขที่แสดงประเภทของการดำเนินการค้นหาที่ดำเนินการใน lookup_array นอกจากนี้ยังเป็นตัวเลือก นอกจากนี้ยังสามารถมีสี่ค่า:
- ถ้าเป็น 1 XLOOKUP จะค้นหาจากบนลงล่างใน lookup_array (ค่าเริ่มต้น)
- เมื่อเป็น -1 XLOOKUP จะค้นหาจากล่างขึ้นบนในช่อง
- หากเป็น 2 , XLOOKUP จะดำเนินการการค้นหาแบบไบนารีโดยเรียงลำดับจากน้อยไปหามาก
- เมื่อเป็น -2 XLOOKUP จะทำการค้นหาแบบไบนารีโดยเรียงลำดับจากมากไปหาน้อย
บทนำ เข้ากับฟังก์ชัน INDEX-MATCH
การใช้ฟังก์ชัน INDEX-MATCH ร่วมกันเพื่อดึงค่าจากตำแหน่งที่กำหนดและจับคู่กับช่วงแหล่งที่มา
ไวยากรณ์:
=INDEX(อาร์เรย์,MATCH(lookup_value,lookup_array,match_type),no_of_column)
อาร์กิวเมนต์:
สำหรับฟังก์ชัน INDEX:
- อาร์เรย์ : เป็นช่วงของเซลล์ที่เราต้องการดึงค่าออกมา<10
- MATCH(lookup_value,lookup_array,match_type): คือหมายเลขแถวของช่วงที่ lookup_value ตรงกับค่าที่ระบุใน lookup_array
- No_of_column: เป็นจำนวนคอลัมน์ของอาร์เรย์ที่เราต้องการส่งคืนค่าที่สอดคล้องกับ lookup_value
สำหรับฟังก์ชัน MATCH:
- Lookup_value: เป็นค่าที่เรากำลังค้นหา
- Looku p_array: เป็นอาร์เรย์ที่เรากำลังค้นหา lookup_value สามารถเป็นได้ทั้งแถวและคอลัมน์
- Match_type: เป็นจำนวนเต็มที่แสดงถึงประเภทการจับคู่ที่เราต้องการ ซึ่งเป็นทางเลือก
- เมื่อเป็น -1 MATCH อันดับแรกจะมองหาการจับคู่แบบตรงทั้งหมด ในกรณีที่ไม่พบการจับคู่แบบตรงทั้งหมด ก็จะค้นหาค่าที่มากกว่าถัดไป (ค่าเริ่มต้น)(ตรงข้ามกับ XLOOKUP )
แต่เงื่อนไขคือ lookup_array ต้องเรียงลำดับจากน้อยไปหามาก มิฉะนั้น จะแสดงข้อผิดพลาด
- เมื่อเป็น 1 MATCH จะมองหาการจับคู่แบบตรงทั้งหมดก่อน ในกรณีที่ไม่พบค่าที่ตรงกันทั้งหมด ระบบจะค้นหาค่าที่น้อยกว่าถัดไป (ตรงข้ามกับ XLOOKUP )
แต่เงื่อนไขคือ lookup_array ต้องเรียงลำดับจากมากไปหาน้อยในครั้งนี้ มิฉะนั้น จะแสดงข้อผิดพลาด
- เมื่อเป็น 0 MATCH จะค้นหารายการที่ตรงทั้งหมด
อ่านเพิ่มเติม: วิธีเลือกข้อมูลเฉพาะใน Excel (6 วิธี)
7 การเปรียบเทียบระหว่างการใช้ฟังก์ชัน XLOOKUP และ INDEX-MATCH
ตอนนี้เราได้แยกย่อยสูตรแล้ว เรามาพูดถึงความคล้ายคลึงและความแตกต่างระหว่างสองฟังก์ชันกัน ก่อนที่จะไปที่การสนทนาหลัก ฉันจะแสดงประเด็นสำคัญในตารางเพื่อความสะดวกของคุณ
ประเด็นของการสนทนา | ความเหมือน/ความแตกต่าง | คำอธิบาย |
คอลัมน์ lookup_array | ความเหมือน | ทั้งสองสนับสนุนคอลัมน์เป็น lookup_array |
Row lookup_array | Similarity | ทั้งสองรองรับแถว เป็น lookup_array |
ไม่มีการจับคู่ของ lookup_value | ความแตกต่าง | XLOOKUP มีตัวเลือกการตั้งค่าเริ่มต้นสำหรับไม่มีการจับคู่ของlookup_value. แต่ไม่มีการจับคู่ INDEX |
การจับคู่โดยประมาณ | ความคล้ายคลึงกันบางส่วน | XLOOKUP สามารถหาค่าที่เล็กกว่าถัดไปได้ หรือค่าที่มากกว่าถัดไปเมื่อไม่มีค่าที่ตรงกันทุกประการ INDEX-MATCH สามารถทำได้เช่นกัน แต่ lookup_array จะต้องเรียงลำดับจากน้อยไปหามากหรือจากมากไปน้อย |
การจับคู่สัญลักษณ์แทน | ความเหมือน | ทั้งคู่สนับสนุนการจับคู่ Wildcards |
การจับคู่ค่าหลายค่า | ความคล้ายคลึงกันบางส่วน | XLOOKUP สามารถค้นหาได้ว่า ค่าแรกหรือค่าสุดท้ายเมื่อค่าตรงกันหลายค่า แต่ INDEX-MATCH สามารถส่งคืนค่าแรกที่ตรงกันเท่านั้น |
สูตรอาร์เรย์ | ความเหมือน | ทั้งสองสนับสนุนอาร์เรย์ สูตร |
1. XLOOKUP และ INDEX-MATCH กับค่าการค้นหาในคอลัมน์
มีความคล้ายคลึงกันระหว่างสองฟังก์ชันในด้านนี้ สำหรับ XLOOKUP และ INDEX-MATCH lookup_array สามารถเป็นคอลัมน์สำหรับทั้งสองฟังก์ชันได้ ที่นี่เรากำลังมองหา เครื่องหมายในฟิสิกส์ ของชื่อนักเรียนใน C ell F5 , Jennifer Marlo เราต้องการค้นหาจากบนลงล่างในคอลัมน์ ชื่อนักศึกษา และส่งกลับ “ ไม่พบ ” ในกรณีที่ไม่พบข้อมูลที่ตรงกัน
- สำหรับ XLOOKUP ใช้สูตรใน เซลล์ G5 .
=XLOOKUP(F5,C5:C16,D5:D16,"Not Found",0,1)
- สำหรับ INDEX-MATCH ให้ใช้สูตรนี้ใน เซลล์G5 .
=INDEX(B5:D16,MATCH(F5,C5:C16,0),3)
อ่านเพิ่มเติม: วิธีจับคู่หลายเกณฑ์จากอาร์เรย์ต่างๆ ใน Excel
2. XLOOKUP และ INDEX-MATCH กับค่าการค้นหาในแถว
นอกจากนี้ยังมีความคล้ายคลึงกันระหว่างสองฟังก์ชันในด้านนี้ . สำหรับ XLOOKUP และ INDEX-MATCH lookup_array ยังสามารถเป็นแถวสำหรับทั้งสองฟังก์ชันได้อีกด้วย สำหรับภาพประกอบ เรามีชุดข้อมูลใหม่ที่มี รหัส , ชื่อ และ เครื่องหมายในวิชาฟิสิกส์ และ เกรด .
ลองพิจารณาสักครู่ว่านี่เป็นชุดข้อมูลที่กว้างมาก และเราไม่รู้ว่าคอลัมน์ เกรด เป็นจำนวนเท่าใด จากนั้น เพื่อหาเกรดของนักเรียนคนใดคนหนึ่ง เราต้องใช้ แถวหัวเรื่อง (B4:E4) เป็น lookup_array และคำว่า “ เกรด ” เป็น lookup_value . เราสามารถทำได้โดยใช้ทั้ง XLOOKUP และ INDEX-MATCH .
- เพื่อหาเกรดของ นักเรียนคนที่ 3 , สูตร XLOOKUP จะเป็นแบบนี้ใน เซลล์ G5 .
=XLOOKUP("Grade",B4:E4,B7:E7,"Not Found",0,1)
- สำหรับกรณีนี้ สูตร INDEX-MATCH จะเป็น:
=INDEX(B5:E16,3,MATCH("Grade",B4:E4,0))
<03. XLOOKUP และ INDEX-MATCH เมื่อไม่พบข้อมูลที่ตรงกัน
ฟังก์ชันทั้งสองมีความแตกต่างกันในด้านนี้ ถ้า lookup_value ไม่ตรงกับค่าใดๆ ใน lookup_array คุณสามารถตั้งค่าคงที่ที่จะส่งคืนใน XLOOKUP ในการทำเช่นนั้นคุณต้องตั้งค่านั้นค่าในอาร์กิวเมนต์ if_not_found ในทางกลับกัน ไม่มีตัวเลือกดังกล่าวใน INDEX-MATCH มันจะส่งคืนข้อผิดพลาด คุณต้องใช้ ฟังก์ชัน IFERROR ภายนอกเพื่อจัดการกับข้อผิดพลาด ในชุดข้อมูลที่กำหนด เราจะหา ชื่อนักศึกษาที่มีรหัสประจำตัว 100 .
- สำหรับสิ่งนี้ ให้ใช้สูตร XLOOKUP ต่อไปนี้ใน เซลล์ G5 .
=XLOOKUP(100,B5:B16,C5:C16,"Not Found",0,1)
- ในทางกลับกัน ใช้สิ่งนี้ INDEX-MATCH สูตร
=INDEX(B5:E16,MATCH(100,B5:B16,0),2)
- เมื่อส่งกลับข้อผิดพลาด คุณ ต้องใช้ฟังก์ชัน IFERROR ภายนอกเพื่อจัดการกับข้อผิดพลาดนี้
=IFERROR(INDEX(B5:E16,MATCH(100,B5:B16,0),2),"Not Found")
การอ่านที่คล้ายกัน
- Excel INDEX MATCH เพื่อส่งคืนค่าหลายค่าในเซลล์เดียว
- สูตร Excel INDEX-MATCH เพื่อส่งคืนค่าหลายค่า ในแนวนอน
- วิธีใช้สูตร INDEX-MATCH ใน Excel เพื่อสร้างผลลัพธ์หลายรายการ
- [แก้ไขแล้ว!] INDEX MATCH ไม่ส่งคืนค่าที่ถูกต้องใน Excel (5 เหตุผล)
- วิธีใช้ INDEX MATCH แทน VLOOKUP ใน Excel (3 วิธี)
4. XLOOKUP และ INDEX-MATCH ใน กรณีของการจับคู่โดยประมาณ
มีความคล้ายคลึงกันบางส่วนระหว่างสองฟังก์ชันในด้านนี้ ในฟังก์ชัน XLOOKUP ถ้า lookup_value ไม่ตรงกับค่าใดๆ ใน lookup_array คุณสามารถแก้ไขสูตรเพื่อส่งกลับค่าที่เล็กกว่าถัดไปหรือค่าที่ใหญ่กว่าถัดไป . ตั้งอาร์กิวเมนต์ match_type เป็น -1 ถ้าคุณต้องการค่าที่น้อยลงถัดไป และตั้งค่าเป็น 1 ถ้าคุณต้องการค่าที่มากขึ้นถัดไป
ตัวอย่างเช่น เราจะหานักเรียนที่มีเครื่องหมาย 50 หรือเครื่องหมายที่ใหญ่กว่าถัดไป
- ในการหาค่า ให้ใช้สูตร XLOOKUP นี้
=XLOOKUP(50,D5:D16,C5:C16,"Not Found",1,1)
- อย่างที่คุณเห็น ไม่มีนักเรียนคนใดที่มีคะแนน 50 . นั่นเป็นเหตุผลว่าทำไมจึงแสดงอันที่อยู่ถัดจาก 50 , 51 โดย Desmond Hayes .
มีตัวเลือกเดียวกันใน INDEX-MATCH สูตร แต่ข้อเสียคือคุณต้องเรียงลำดับ lookup_array จากมากไปหาน้อยถ้าคุณต้องการค่าที่มากขึ้นถัดไป มิฉะนั้นจะส่งคืนข้อผิดพลาด และเพื่อให้ได้ค่าที่น้อยลงถัดไป คุณต้องเรียงลำดับจากน้อยไปหามาก
- ก่อนอื่น ใส่สูตรนี้ใน เซลล์ G5 .
=INDEX(B5:E16,MATCH(50,D5:D16,-1),2)
- ดังนั้น คุณจะเห็นว่าผลลัพธ์แสดงข้อผิดพลาด #N/A .
- ดังนั้น ให้เรียงลำดับ ช่วงเซลล์ D5:D16 จากน้อยไปหามาก แล้วคุณจะได้ค่าที่ถูกต้อง
<6 หมายเหตุพิเศษ:ในฟังก์ชัน XLOOKUP -1ใช้ได้กับค่าถัดไปที่น้อยกว่า แต่ใน INDEX-MATCH, -1ใช้ได้กับค่าที่มากขึ้นถัดไป ในทำนองเดียวกันในฟังก์ชัน XLOOKUP1 ใช้ได้กับค่าถัดไปที่มากกว่า แต่ใน INDEX-MATCH 1ใช้ได้กับค่าถัดไปที่น้อยกว่า
อ่านเพิ่มเติม: วิธีใช้INDEX และ Match สำหรับ Partial Match (2 Ways)
5. XLOOKUP และ INDEX-MATCH ในกรณีของ Matching Wildcards
มีความคล้ายคลึงกันระหว่างสองฟังก์ชันในด้านนี้ XLOOKUP และ INDEX-MATCH ทั้งคู่สนับสนุน สัญลักษณ์แทน ที่นี่ เราจะค้นหานักเรียนที่มี “ Marlo ” เป็นชื่อที่สอง ทำตามขั้นตอนด้านล่างเพื่อดูการเปรียบเทียบ XLOOKUP กับ INDEX-MATCH
- ก่อนอื่น ใช้สูตร XLOOKUP นี้ใน เซลล์ G5 เพื่อรับเอาต์พุต
=XLOOKUP("*Marlo*",C5:C16,C5:C16,"Not Found",2,1)
หมายเหตุ:หากต้องการใช้อักขระตัวแทนใน XLOOKUPคุณต้องตั้งค่าอาร์กิวเมนต์ match_typeเป็น 2มิฉะนั้นจะไม่ทำงาน
- ในทางกลับกัน สูตร INDEX-MATCH เพื่อให้ทำงานเดียวกันสำเร็จจะเป็นดังนี้
=INDEX(B5:E16,MATCH("*Marlo*",C5:C16,0),2)
อ่านเพิ่มเติม: INDEX จับคู่หลายเกณฑ์ด้วยสัญลักษณ์แทนใน Excel (คู่มือฉบับสมบูรณ์ )
6. XLOOKUP และ INDEX-MATCH เมื่อค่าหลายค่าตรงกับค่าการค้นหา
ตัวอย่างนี้แสดง XLOOKUP vs INDEX-MATCH เมื่อ ค่าหลายค่าตรงกับค่าการค้นหา นอกจากนี้ยังมีความคล้ายคลึงกันบางส่วนระหว่างสองฟังก์ชันในเรื่องนี้ XLOOKUP และ INDEX-MATCH ทั้งคู่ส่งคืนเพียงค่าเดียวในกรณีที่ค่าหลายค่าใน lookup_array ตรงกับ lookup_value แต่ในฟังก์ชัน XLOOKUP คุณสามารถแก้ไขการค้นหาเพื่อรับ