หน้าแรก บทความ Microsoft
Microsoft

ใช้ IFERROR ร่วมกับ VLOOKUP/XLOOKUP ใน Excel

เผยแพร่ 21 ส.ค. 69

สูตรค้นหาข้อมูลอย่าง VLOOKUP, XLOOKUP หรือ INDEX+MATCH มักขึ้น Error เช่น #N/A เวลาหาข้อมูลไม่เจอ ถ้าไฟล์ถูกแชร์ให้คนอื่นดูหรือใช้พิมพ์รายงาน การเห็น Error โผล่เต็มตารางดูไม่เป็นมืออาชีพและอาจสร้างความสับสน บทความนี้รวมวิธีครอบสูตรค้นหายอดฮิตด้วย IFERROR แบบละเอียด ครบทุกสูตรค้นหาหลักที่ใช้งานบ่อย

ทำไมต้องครอบสูตร Lookup ด้วย IFERROR

เวลาค้นหาข้อมูลแล้วไม่เจอ Excel จะแสดง Error ในเซลล์ทันที ซึ่งถ้าปล่อยไว้แบบนั้นจะกระทบสูตรอื่นที่อ้างอิงเซลล์นี้ต่อ (เช่น SUM ที่รวมคอลัมน์ที่มี Error จะพังไปทั้งคอลัมน์) การครอบด้วย IFERROR ช่วยให้แสดงข้อความที่อ่านเข้าใจง่ายแทน เช่น “ไม่พบข้อมูล” หรือค่า 0 แทน

IFERROR + VLOOKUP

รูปแบบสูตรพื้นฐานที่สุดคือครอบ VLOOKUP ทั้งก้อนด้วย IFERROR

=IFERROR(VLOOKUP(ค่าที่ค้นหา, ตาราง, คอลัมน์ที่ต้องการ, FALSE), "ข้อความเมื่อไม่พบ")

D2fx=IFERROR(VLOOKUP(A2,ราคาสินค้า,2,FALSE),"ไม่พบสินค้า")
A B D
1 รหัสสินค้า ชื่อสินค้า ราคา
2 A102 เมาส์ไร้สาย ไม่พบสินค้า
3 A101 คีย์บอร์ด 590

ถ้ารหัส A102 ยังไม่มีในตารางราคา สูตร VLOOKUP เดิมจะขึ้น #N/A แต่พอครอบ IFERROR ไว้ จะเปลี่ยนเป็นข้อความ “ไม่พบสินค้า” ที่คนอ่านเข้าใจได้ทันที

IFERROR + XLOOKUP

XLOOKUP มีพารามิเตอร์ [if_not_found] ในตัวอยู่แล้ว ทำให้ในหลายกรณีไม่จำเป็นต้องครอบด้วย IFERROR เพิ่ม แต่ถ้าต้องการดักจับ Error ประเภทอื่นที่ไม่ใช่แค่หาไม่เจอ (เช่น พิมพ์ชื่อช่วงผิด หรือสูตรอ้างอิงผิด) การครอบด้วย IFERROR ยังมีประโยชน์อยู่

D2fx=IFERROR(XLOOKUP(A2,รหัส,ราคา),"ไม่พบสินค้า")
A B D
1 รหัสสินค้า ชื่อสินค้า ราคา
2 A102 เมาส์ไร้สาย ไม่พบสินค้า
3 A101 คีย์บอร์ด 590

วิธีที่สั้นกว่าคือใช้พารามิเตอร์ในตัว XLOOKUP โดยตรง =XLOOKUP(A2,รหัส,ราคา,"ไม่พบสินค้า") ให้ผลลัพธ์เดียวกันโดยไม่ต้องพึ่ง IFERROR เลย เหมาะกับกรณีที่ต้องการดักเฉพาะ “หาไม่เจอ” อย่างเดียว

IFERROR + INDEX/MATCH

ใครที่ยังใช้ INDEX+MATCH แทน VLOOKUP ก็ครอบด้วย IFERROR ได้แบบเดียวกัน

D2fx=IFERROR(INDEX(ราคา,MATCH(A2,รหัส,0)),"ไม่พบสินค้า")
A B D
1 รหัสสินค้า ชื่อสินค้า ราคา
2 A102 เมาส์ไร้สาย ไม่พบสินค้า
3 A101 คีย์บอร์ด 590

Fallback Chain: ค้นหาหลายตารางด้วย IFERROR ซ้อนกัน

ถ้ามีข้อมูลกระจายอยู่หลายตาราง (เช่น ราคาสินค้าปีนี้กับปีก่อน) สามารถซ้อน IFERROR หลายชั้นเพื่อค้นหาไล่ไปทีละตารางจนกว่าจะเจอได้

D2fx=IFERROR(VLOOKUP(A2,ตารางปีนี้,2,FALSE),IFERROR(VLOOKUP(A2,ตารางปีก่อน,2,FALSE),"ไม่พบในทั้งสองตาราง"))
A D
1 รหัสสินค้า ราคา
2 A105 450 (จากตารางปีก่อน)

สูตรจะค้นหาในตารางปีนี้ก่อน ถ้าไม่เจอ (เกิด Error) จะไปค้นหาในตารางปีก่อนต่อ ถ้ายังไม่เจออีกจึงแสดงข้อความสุดท้าย เทคนิคนี้มีประโยชน์มากเวลาข้อมูลกระจายอยู่คนละแหล่ง

ข้อผิดพลาดที่พบบ่อย

สรุป

การครอบสูตรค้นหาอย่าง VLOOKUP, XLOOKUP หรือ INDEX/MATCH ด้วย IFERROR ช่วยให้ตารางดูสะอาดขึ้นและป้องกันสูตรอื่นพังตามเวลาข้อมูลหาไม่เจอ รูปแบบพื้นฐานคือ =IFERROR(สูตรค้นหา, ข้อความเมื่อไม่พบ) ส่วน XLOOKUP มีพารามิเตอร์ในตัวให้ใช้ได้เลยโดยไม่ต้องพึ่ง IFERROR เพิ่มก็ได้ ดูพื้นฐานเพิ่มเติมที่ IFERROR ใน Excel, XLOOKUP ต่างจาก VLOOKUP อย่างไร และ INDEX + MATCH ใน Excel

หมายเหตุ: บทความนี้เขียนและเรียบเรียงโดย AI

← กลับหน้าบทความ
Line