XLOOKUP กับ INDEX-MATCH ใน Excel (การเปรียบเทียบที่เป็นไปได้ทั้งหมด)

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

วันนี้ฉันจะทำการวิเคราะห์เปรียบเทียบ ฟังก์ชัน 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) <0

7. XLOOKUP และ INDEX-MATCH ในกรณีที่มีค่าการค้นหาหลายค่า

ในตัวอย่างนี้ เราจะแสดง XLOOKUP vs INDEX-MATCH ในกรณีที่มีค่าการค้นหาหลายค่า มีความคล้ายคลึงกันระหว่างสองฟังก์ชันในเรื่องนี้ ทั้งคู่อนุญาตหลาย lookup_values (สูตรอาร์เรย์)

  • สำหรับฟังก์ชัน XLOOKUP สูตรต่อไปนี้จะใช้ได้
=XLOOKUP(G5:G8,B5:B16,E5:E16,"Not Found",0,1)

  • จากนั้น สำหรับ INDEX-MATCH ฟังก์ชันต่อไปนี้จะทำงานด้วย
  • <11 =INDEX(B5:E16,MATCH(G5:G8,B5:B16,0),4)

    ข้อดี & ข้อเสียของฟังก์ชัน XLOOKUP

    มีข้อดีและข้อเสียบางประการของการใช้ฟังก์ชัน XLOOKUP มาดูกันโดยย่อ

    ข้อดี

    • ตั้งค่าเริ่มต้นสำหรับกรณีที่ไม่ตรงกัน
    • สามารถค้นหาการจับคู่โดยประมาณโดยไม่ต้องเรียงลำดับ lookup_array .
    • มีสิทธิ์เข้าถึง เพื่อค้นหาจากทั้งเซลล์แรกและเซลล์สุดท้ายของ lookup_array .

    ข้อเสีย

    • ทำงานช้ากว่า INDEX-MATCH ฟังก์ชัน
    • พร้อมใช้งานใน Office 365 เท่านั้น

    ข้อดี & ข้อเสียของฟังก์ชัน INDEX-MATCH

    ฟังก์ชัน INDEX-MATCH ยังมีข้อดีและข้อเสียบางประการดังต่อไปนี้

    ข้อดี

    • ใช้งานได้ เร็วกว่าฟังก์ชัน XLOOKUP
    • ใช้งานได้ใน Excel เวอร์ชันเก่า

    ข้อเสีย

    • ไม่สามารถจัดการข้อผิดพลาดเมื่อไม่พบการจับคู่
    • ต้องการ lookup_array เพื่อจัดเรียงสำหรับการจับคู่โดยประมาณ
    • ส่งกลับเฉพาะค่าแรกเมื่อค่าหลายค่าตรงกับ lookup_value .

    สรุป

    สุดท้ายนี้ เรามาถึงตอนท้ายของบทความขนาดยาวของเรา ที่นี่ เราพยายามสร้างการวิเคราะห์เปรียบเทียบของฟังก์ชัน XLOOKUP กับ INDEX-MATCH ใน Excel แจ้งให้เราทราบคำแนะนำเชิงลึกของคุณเกี่ยวกับเรื่องนี้ ติดตาม ExcelWIKI สำหรับบทเรียนเพิ่มเติม

    คอลัมน์
  • Return_array: เป็นคอลัมน์ที่ค่าที่สอดคล้องกันของ lookup_value จะถูกส่งกลับ

อาร์กิวเมนต์ทางเลือก:

  • If_not_found : เป็นค่าที่จะถูกส่งกลับในกรณีที่ lookup_array ไม่มี lookup_value
  • Match_mode : เป็นตัวเลขที่แสดงประเภทการจับคู่ของ lookup_value ที่คุณต้องการ นี่เป็นอาร์กิวเมนต์ที่ไม่บังคับ สามารถมีสี่ค่า
  1. เมื่อเป็น 0 XLOOKUP จะค้นหาข้อมูลที่ตรงกัน (ค่าเริ่มต้น)
  2. เมื่อเป็น 1 XLOOKUP จะค้นหาข้อมูลที่ตรงกันก่อน หากไม่พบการจับคู่แบบตรงทั้งหมด ก็จะจับคู่ค่าที่น้อยกว่าถัดไป
  3. เมื่อเป็น -1 XLOOKUP จะค้นหาการจับคู่แบบตรงทั้งหมดก่อน หากไม่พบการจับคู่แบบตรงทั้งหมด ก็จะจับคู่ค่าที่มากกว่าถัดไป
  4. เมื่อเป็น 2 XLOOKUP จะค้นหาค่าที่ตรงกันโดยประมาณก่อนโดยใช้สัญลักษณ์แทน ( ใช้ได้กับค่าการค้นหาสตริงเท่านั้น)
  • Search_mode : เป็นตัวเลขที่แสดงประเภทของการดำเนินการค้นหาที่ดำเนินการใน lookup_array นอกจากนี้ยังเป็นตัวเลือก นอกจากนี้ยังสามารถมีสี่ค่า:
  1. ถ้าเป็น 1 XLOOKUP จะค้นหาจากบนลงล่างใน lookup_array (ค่าเริ่มต้น)
  2. เมื่อเป็น -1 XLOOKUP จะค้นหาจากล่างขึ้นบนในช่อง
  3. หากเป็น 2 , XLOOKUP จะดำเนินการการค้นหาแบบไบนารีโดยเรียงลำดับจากน้อยไปหามาก
  4. เมื่อเป็น -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. เมื่อเป็น -1 MATCH อันดับแรกจะมองหาการจับคู่แบบตรงทั้งหมด ในกรณีที่ไม่พบการจับคู่แบบตรงทั้งหมด ก็จะค้นหาค่าที่มากกว่าถัดไป (ค่าเริ่มต้น)(ตรงข้ามกับ XLOOKUP )

แต่เงื่อนไขคือ lookup_array ต้องเรียงลำดับจากน้อยไปหามาก มิฉะนั้น จะแสดงข้อผิดพลาด

  1. เมื่อเป็น 1 MATCH จะมองหาการจับคู่แบบตรงทั้งหมดก่อน ในกรณีที่ไม่พบค่าที่ตรงกันทั้งหมด ระบบจะค้นหาค่าที่น้อยกว่าถัดไป (ตรงข้ามกับ XLOOKUP )

แต่เงื่อนไขคือ lookup_array ต้องเรียงลำดับจากมากไปหาน้อยในครั้งนี้ มิฉะนั้น จะแสดงข้อผิดพลาด

  1. เมื่อเป็น 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)) <0

3. 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 .
<6 =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 คุณสามารถแก้ไขการค้นหาเพื่อรับ

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