ฟังก์ชัน XLOOKUP ใน Excel เป็นฟังก์ชันที่ถูกออกแบบมาเพื่อแทนที่ VLOOKUP, HLOOKUP และ INDEX+MATCH โดยทำให้การค้นหาข้อมูลในแนวตั้งหรือแนวนอนง่ายและยืดหยุ่นมากขึ้น ฟังก์ชันนี้ช่วยลดข้อจำกัดของ VLOOKUP เช่น ความจำเป็นต้องเรียงข้อมูลจากซ้ายไปขวา และไม่สามารถระบุค่าเริ่มต้นหากไม่พบผลลัพธ์ได้ง่าย ๆ
ฟังก์ชันนี้สามารถใช้ค้นหาค่าจากคอลัมน์หรือแถวใด ๆ ก็ได้ และแสดงผลลัพธ์จากตำแหน่งที่ตรงกันได้อย่างแม่นยำ นอกจากนี้ยังสามารถกำหนดค่าเริ่มต้นเมื่อไม่พบข้อมูลได้ ช่วยให้สูตรทำงานได้เสถียรมากขึ้นเมื่อใช้ในไฟล์งานที่ซับซ้อน
XLOOKUP ยังสามารถทำการค้นหาแบบใกล้เคียง (approximate match), ค้นหาค่าจากบนลงล่างหรือจากล่างขึ้นบน และค้นหาในลำดับที่กำหนดได้อีกด้วย ทำให้เป็นหนึ่งในฟังก์ชันที่ทรงพลังที่สุดใน Excel เวอร์ชันใหม่ ๆ
ประโยชน์ของฟังก์ชัน XLOOKUP ใน Excel
- ใช้แทนฟังก์ชัน VLOOKUP, HLOOKUP, INDEX และ MATCH ได้ในสูตรเดียว
- ไม่จำเป็นต้องจัดเรียงข้อมูลตามลำดับ
- รองรับการค้นหาทั้งแนวตั้งและแนวนอน
- กำหนดค่าหากไม่พบข้อมูลได้ด้วย
if_not_found - รองรับการค้นหาแบบ exact match และ approximate match
- สามารถค้นหาแบบย้อนกลับจากล่างขึ้นบนได้
รูปแบบการใช้งาน (Syntax)
XLOOKUP(lookup_value, lookup_array, return_array, [if_not_found], [match_mode], [search_mode])
อาร์กิวเมนต์ที่ใช้ในฟังก์ชัน XLOOKUP มีดังนี้
lookup_value– ค่าที่ต้องการค้นหาlookup_array– ช่วงข้อมูลที่ต้องการค้นหาค่าreturn_array– ช่วงข้อมูลที่ต้องการแสดงผลลัพธ์[if_not_found]– (ไม่จำเป็น) ข้อความหรือค่าที่แสดงเมื่อไม่พบผลลัพธ์[match_mode]– (ไม่จำเป็น) วิธีการจับคู่- 0: ค่าที่ตรงกันพอดี (ค่าเริ่มต้น)
- -1: รายการที่ตรงกันพอดีหรือรายการถัดไปที่น้อยที่สุด
- 1: รายการที่ตรงกันพอดีหรือรายการที่มากที่สุดถัดไป
- 2: ใช้ wildcard (เช่น *, ?)
- ? (เครื่องหมายคำถาม) แทนอักขระตัวใดก็ได้ ตัวอย่างเช่น sm?th จะค้นหา “smith” และ “smyth”
- * (เครื่องหมายดอกจัน) แทนจํานวนอักขระใดๆ ตัวอย่างเช่น *east จะค้นหา “Northeast” และ “Southeast”
- ~ (เครื่องหมายตัวหนอน) ตามด้วย ?, * หรือ ~ หมายถึง เครื่องหมายคําถาม เครื่องหมายดอกจัน หรือเครื่องหมายตัวหนอน ตัวอย่างเช่น fy06~? จะค้นหา “fy06?”
[search_mode]– (ไม่จำเป็น) วิธีการค้นหา- 1 คือ ทำการค้นหาตั้งแต่รายการแรกเป็นต้นไป (หากไม่ระบุ จะเป็นค่าตั้งต้น)
- -1 คือ ทำการค้นหารายการสุดท้ายเป็นต้นไป
- 2 คือ ค้นหาแบบ Binary Search แบบ Ascending (จำเป็นจะต้องเรียง lookup_array แบบ Ascending)
- -2 คือ ค้นหาแบบ Binary Search แบบ Descending (จำเป็นจะต้องเรียง lookup_array แบบ Descending)
ตัวอย่างการประยุกต์ใช้งานฟังก์ชัน XLOOKUP ใน Excel
ตัวอย่างที่ 1: ค้นหาชื่อพนักงานจากรหัส
สมมติเรามีข้อมูลดังนี้
| รหัสพนักงาน | ชื่อพนักงาน |
|---|---|
| 1001 | สมชาย |
| 1002 | อารีย์ |
| 1003 | ปกรณ์ |
ต้องการค้นหาชื่อพนักงานที่มีระหัส 1002
สูตรที่ใช้
=XLOOKUP(1002, A2:A4, B2:B4)

1002คือค่าที่ต้องการค้นหา (lookup_value)A2:A4คือช่วงที่สูตรจะใช้ค้นหาค่าที่ตรงกับ1002(lookup_array)B2:B4คือช่วงของค่าที่ต้องการแสดงผลลัพธ์ (return_array)- สูตรจะไล่ตรวจจาก A2 ลงไป
- เจอค่า 1002 ที่เซลล์ A3 → สูตรจะคืนค่าจากเซลล์ B3 ซึ่งก็คือ “อารีย์”
ผลลัพธ์

ตัวอย่างที่ 2: ค้นหาราคาสินค้าโดยใช้ฟังก์ชัน XLOOKUP ใน Excel ร่วมกับ IFERROR
ข้อมูลสินค้า
| สินค้า | ราคา (บาท) |
|---|---|
| ปากกา | 15 |
| ดินสอ | 10 |
| ยางลบ | 5 |
ต้องการค้นหาสินค้าตามชื่อที่ต้องการ ถ้าไม่พบให้แสดงข้อความ “ไม่พบสินค้า”
สูตรที่ใช้
=IFERROR(XLOOKUP("ไม้บรรทัด", A2:A4, B2:B4), "ไม่พบสินค้า")

XLOOKUP("ไม้บรรทัด", A2:A4, B2:B4)จะค้นหาคำว่า “ไม้บรรทัด” ในช่วง A2:A4- สูตรไม่พบ “ไม้บรรทัด” ในรายการ → จึงส่งคืนค่าประเภท #N/A
IFERROR(..., "ไม่พบสินค้า")จะตรวจว่าผลลัพธ์จาก XLOOKUP มี error หรือไม่- เมื่อพบว่าเกิด error → จะแสดงข้อความ “ไม่พบสินค้า” แทนการแสดงข้อผิดพลาด
ผลลัพธ์
ไม่พบสินค้า

ตัวอย่างที่ 3: ค้นหาชื่อสินค้าแบบค้นหาจากล่างขึ้นบน
ข้อมูลสต๊อกสินค้า
| วันที่ | สินค้า |
|---|---|
| 01/05/2025 | ปากกา |
| 02/05/2025 | ยางลบ |
| 03/05/2025 | ปากกา |
ต้องการค้นหาชื่อสินค้าแบบค้นหาจากล่างขึ้นบน ถ้าพบให้แสดงวันที่ออกมา ถ้าไม่พบให้แสดงคำว่า “ไม่พบ”
สูตรที่ใช้
=XLOOKUP("ปากกา", B2:B4, A2:A4, "ไม่พบ", 0, -1)

"ปากกา"คือค่าที่ต้องการค้นหาในคอลัมน์สินค้า (B2:B4)A2:A4คือช่วงที่ต้องการให้แสดงผลลัพธ์ (คอลัมน์วันที่)if_not_foundกำหนดเป็น"ไม่พบ"(หากไม่เจอจะแสดงคำนี้)match_modeใช้0หมายถึงต้องตรงกันจริงๆsearch_modeใช้-1หมายถึงค้นหาจากล่างขึ้นบน- สูตรจะเริ่มตรวจสอบจาก B4 → พบ “ปากกา” → คืนค่าจาก A4 → ได้ “03/05/2025”
ผลลัพธ์

ตัวอย่างที่ 4: ค้นหาโดยใช้ Wildcard (สัญลักษณ์แทน)
ข้อมูลตัวอย่าง
| รหัสผู้ใช้ | ชื่อ |
|---|---|
| 001abc | วรรณา |
| 002xyz | ศรัญญา |
ต้องการค้นหาชื่อพนักงานที่มีรหัส 001 ตามด้วยตัวอักษรกี่ตัวก็ได้
สูตร
=XLOOKUP("001*", A2:A3, B2:B3, "ไม่พบ", 2)

"001*"ใช้สัญลักษณ์*แทนค่าทุกตัวอักษรหลังจาก “001”A2:A3เป็นช่วงที่ใช้ค้นหาค่า (lookup_array)B2:B3เป็นช่วงของค่าที่จะแสดงผล (return_array)match_mode= 2 หมายถึง เปิดการค้นหาด้วย wildcard- สูตรตรวจเจอว่า “001abc” ใน A2 ตรงกับ “001*” → คืนค่าจาก B2 → ได้ “วรรณา”
ผลลัพธ์

ตัวอย่างที่ 5: ใช้ฟังก์ชัน XLOOKUP ใน Excel ค้นหาคนที่ได้คะแนนสูงสุด
ข้อมูลคะแนนสอบ
| ชื่อ | คะแนน |
|---|---|
| กิตติ | 75 |
| ดารา | 85 |
| วัฒนา | 80 |
ต้องการค้นหาค้นที่ได้คะแนนสูงสุด
สูตร
=XLOOKUP(MAX(B2:B4), B2:B4, A2:A4)

MAX(B2:B4)ให้ค่า 85 (คะแนนสูงสุดในช่วง B2:B4)XLOOKUP(85, B2:B4, A2:A4)จะค้นหาค่าที่ตรงกับ 85 ใน B2:B4- พบว่า B3 คือ 85 → คืนค่าจาก A3 → ได้ “ดารา”
ผลลัพธ์

หมายเหตุ
- ฟังก์ชัน XLOOKUP ใช้ได้ใน Excel 365 และ Excel 2019 ขึ้นไปเท่านั้น
- ควรใช้ฟังก์ชัน IFERROR หรืออากิวเมนต์
if_not_foundเพื่อป้องกัน error เมื่อไม่พบค่า - เมื่อใช้กับตารางขนาดใหญ่ ควรตรวจสอบประสิทธิภาพโดยหลีกเลี่ยงการใช้กับช่วงข้อมูลที่ไม่จำเป็น
- ไม่ควรใช้
match_mode = 2โดยไม่ระบุ wildcard อย่างถูกต้อง เช่น*หรือ?
สรุป
ฟังก์ชัน XLOOKUP ใน Excel คือฟังก์ชันที่มีประสิทธิภาพและมีความยืดหยุ่นสูง ช่วยค้นหาข้อมูลในตารางได้แม่นยำและใช้งานง่ายกว่าฟังก์ชันเก่า ๆ อย่าง VLOOKUP หรือ HLOOKUP โดยสามารถกำหนดเงื่อนไขได้อย่างหลากหลาย ทั้งการค้นหาข้อมูลแบบตรงตัว แบบประมาณ หรือแบบใช้สัญลักษณ์แทน รวมถึงยังสามารถกำหนดค่าที่ต้องการให้แสดงเมื่อไม่พบผลลัพธ์ได้อีกด้วย เหมาะสำหรับงานที่ต้องใช้การดึงข้อมูลอย่างมืออาชีพ
ข้อมูลอ้างอิง: XLOOKUP function
