Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ซอฟต์แวร์ >> Office

ค้นพว่าทำไม XLOOKUP เป็นโซลูชัน Lookup ที่สมบูรณ์แบบของ Excel

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

ในบทช่วยสอนนี้ เราจะแบ่งปัน 3 เหตุผลว่าทำไม XLOOKUP เป็นเพื่อนสนิทใหม่ของคุณ คุณจะเห็นว่ามันทำให้งาน lookup ทุกวันเร็วขึ้น สะอาดขึ้น และฉลาดขึ้น—ไม่ต้องมี workaround

Syntax:

=XLOOKUP(lookup_value, lookup_array, return_array, [if_not_found], [match_mode], [search_mode])

ฟังก์ชัน XLOOKUP เป็นฟังก์ชัน lookup สมัยใหม่ของ Excel ที่หาค่าในคอลัมน์ (หรือแถว) หนึ่งและคืนค่าที่เกี่ยวข้องจากอีกคอลัมน์ (หรือแถว) หนึ่ง มันออกแบบมาเพื่อแทนที่ VLOOKUP และ INDEX/MATCH โดยเป็นไปอย่างง่ายและยืดหยุ่นกว่า

เหตุผลที่ 1: XLOOKUP ค้นหาได้ในทิศทางใดก็ได้ (ซ้าย หรือ ขวา)

VLOOKUP ค้นหาได้เฉพาะทางขวาของคอลัมน์ lookup เท่านั้น—ถ้าคอลัมน์ lookup ไม่ใช่คอลัมน์แรกใน table array สูตรจะล้มเหลว INDEX/MATCH แก้ปัญหานี้ได้ แต่อ่านยากเพราะต้องซ้อนสองฟังก์ชัน ซึ่งอาจระยุ่งกับข้อมูลใหญ่

XLOOKUP กลับกลับมา: มันแยก lookup range ออกจาก return range ดังนั้นคุณสามารถค้นหาซ้าย ขวา บน ลง ได้โดยไม่มีอุปสรรค

สมมติว่าคุณมีชุดข้อมูลการขาย และต้องการหา Product ID โดยค้นหาจาก Product Name

VLOOKUP:

  • เลือกเซลล์และใส่สูตรต่อไปนี้
=VLOOKUP(H5,A2:F23,1,FALSE)

สูตรนี้คืน #N/A error เพราะ VLOOKUP ไม่สามารถค้นหาซ้ายได้ (Product ID อยู่ก่อน Product Name ในชีท) เพื่อใช้ VLOOKUP ที่นี่ คุณต้องจัดเรียงคอลัมน์ใหม่—ซึ่งมักไม่เป็นไปได้เพราะอาจทำลายโครงสร้างข้อมูลและสูตร downstream

INDEX/MATCH:

  • เลือกเซลล์และใช้ INDEX/MATCH combo
=INDEX(A2:A23, MATCH(H8, B2:B23, 0))

สูตรนี้คืน Product ID (P006) มันทำงานได้ แต่คุณต้องระบุทั้งสองช่วง และให้แน่ใจว่า MATCH เป็น exact (0) ซึ่งเพิ่มความยาว

XLOOKUP:
XLOOKUP ไม่สนใจลำดับคอลัมน์ คุณเพียงบอกว่าค้นหาอะไร และคืนค่าจากไหน

  • เลือกเซลล์และใส่สูตร XLOOKUP แบบไดนามิก
=XLOOKUP(H12, B2:B23, A2:A23)

สูตรนี้ค้นหา Product Name และคืน Product ID ที่ตรงกัน (P006)—แม้ ID จะอยู่ทางซ้าย Syntax สะอาด ไม่ต้องซ้อน

การใช้งานจริง:
สมมติว่าแดชบอร์ดขายของคุณให้ผู้ใช้พิมพ์ชื่อสินค้าในกล่องค้นหา คุณสามารถดึง Product ID—หรือรายละเอียดหลายอย่าง (ราคา สต็อก supplier) ได้ทันทีโดยไม่ต้องจัดเรียงคอลัมน์ใหม่:

=XLOOKUP(H12, B2:B23, A2:E23)

นี่คืนหลายคอลัมน์โดย "spill" ไปยังเซลล์ข้างเคียง ดังนั้นคุณได้ข้อมูลสินค้าทั้งหมดในขั้นตอนเดียว

เหตุผลที่ 2: Error Handling ในตัว (ไม่มี #N/A อีกต่อไป)

เมื่อไม่พบค่า lookup Excel คืน #N/A ด้วย VLOOKUP หรือ INDEX/MATCH คุณมัก wrap สูตรด้วย IFERROR เพื่อจัดการอย่างสง่างาม—เพิ่มการซ้อนอีกชั้น

XLOOKUP มีอาร์กิวเมนต์ if_not_found ในตัว ดังนั้นคุณสามารถระบุข้อความหรือค่า fallback ที่เป็นมิตรได้ในสูตรโดยตรง

ลองค้นหาราคาสินค้าที่อาจไม่มีในฐานข้อมูล (เช่น "Wireless Charger")

VLOOKUP + IFERROR:

  • เลือกเซลล์และใส่สูตรต่อไปนี้
=IFERROR(VLOOKUP(H4,D2:F23,1,FALSE), "Not Found")

นี่ทำงานได้ แต่ verbose และเพิ่มชั้นการซ้อนอีก

INDEX/MATCH + IFERROR:

  • เลือกเซลล์และใส่สูตรต่อไปนี้
=IFERROR(INDEX(D2:D23, MATCH(H8, B2:B23, 0)), "Not Found")

อีกครั้ง ทำงานได้ แต่วrapper เพิ่มทำให้สูตรยาวขึ้น

XLOOKUP:
อาร์กิวเมนต์ if_not_found ของ XLOOKUP จัดการค่าที่หายไปอย่างสง่างาม

  • เลือกเซลล์และใส่สูตรต่อไปนี้
=XLOOKUP(H12, B2:B23, D2:D23, "Not Found")

สูตรนี้ค้นหา Product Name ถ้าไม่พบ คืน "Not Found" มันกระชับและหลีกเลี่ยงฟังก์ชันเพิ่มเติม

เหตุผลที่ 3: Wildcard Searches ทำได้ง่าย

VLOOKUP รองรับ wildcards (* และ ?) ใน exact-match mode (FALSE) สำหรับ text lookups แต syntax ไม่ชัดเจนเสมอไป INDEX/MATCH ก็รองรับ wildcards เพราะ MATCH จดจำพวกมันเมื่อ match_type เป็น 0 XLOOKUP ทำให้เจตนาชัดเจนด้วย match_mode เป็น 2 สำหรับ wildcard matching ซึ่งเพิ่มความชัดเจนและลดความสิ้นหวัง

จินตนาการว่าคุณจำแค่ส่วนของชื่อสินค้า—อาจขึ้นต้นด้วย "Lap"—และคุณต้องการหาราคา

VLOOKUP:

  • เลือกเซลล์และใส่สูตรต่อไปนี้
=VLOOKUP("Lap*", B2:D23, 3, FALSE)

นี่อาจทำงานกับ exact match ใช้ wildcards และไม่ต้องการข้อมูลที่จัดเรียงแล้ว อย่างไรก็ตาม อาร์กิวเมนต์ "column index" อาจเปราะบางถ้าคอลัมน์เคลื่อนที่

INDEX/MATCH:

  • เลือกเซลล์และใส่สูตรต่อไปนี้
=INDEX(D2:D23, MATCH("Lap*", B2:B23, 0))

นี่ก็รองรับ wildcards ผ่าน MATCH มันน่าเชื่อถือ แต่การตั้งค่าสองช่วง verbose กว่า

XLOOKUP:
match_mode ของ XLOOKUP ทำให้ wildcard searches ตรงไปตรงมา

  • เลือกเซลล์และใส่สูตรต่อไปนี้
=XLOOKUP("Lap*", B2:B23, D2:D23, "No match", 2)
  • "Lap*": partial match (จับคู่ข้อความขึ้นต้นด้วย "Lap")
  • Lookup array: B2:B23
  • Return array: D2:D23
  • if_not_found: "No match"
  • 2: เปิดใช้งาน wildcard search

สูตรนี้คืนราคาสินค้า (เช่น $30) โดยใช้ wildcard matching—เหมาะสำหรับการค้นหาชื่อบางส่วน SKU lookups หรือเมื่อคุณไม่มีค่าที่แน่นอน

หมายเหตุสำคัญ: XLOOKUP พร้อมใช้งานใน Microsoft 365, Excel 2021 และรุ่นใหม่กว่า ถ้าคุณอยู่บนรุ่นเก่า คุณต้องอยู่กับ VLOOKUP หรือ INDEX/MATCH לעת עתה

เคล็ดลับ Wildcard:

SymbolMeaningExampleMatches
*Any number of characters"Lap*"Laptop Stand
?Single character"P00?"P001, P002, etc.
~Escape wildcard"Power~*"Finds "Power*" literally

ดาวน์โหลด Practice Workbook

Final Thoughts

XLOOKUP ไม่ใช่แค่ฟังก์ชัน lookup อีกตัวหนึ่ง—มันคือการคิดใหม่ว่าการ lookup ควรทำงานใน Excel อย่างไร ในบทช่วยสอนนี้ เราแสดง 3 เหตุผลว่าทำไม XLOOKUP เป็นเพื่อนสนิทใหม่ของคุณ ด้วยการรวมความยืดหยุ่นทางทิศทาง error handling ในตัว และ wildcard matching ที่ชัดเจน มันประหยัดเวลาและป้องกันข้อผิดพลาดของสูตร เมื่อคุณลองใช้ คุณจะไม่กลับไปใช้ตัวเก่าอีก