IFERROR ช่วยดักจับ Error ทุกประเภทที่เกิดขึ้นในสูตร (#N/A, #VALUE!, #REF!, #DIV/0!, #NUM!, #NAME?, #NULL!) แล้วเปลี่ยนเป็นค่าที่เราต้องการแทน
.
ที่เจ๋งคือมันช่วยให้รายงานและ Dashboard ดูสะอาด ไม่มี Error แสดงให้ผู้ใช้งานเห็น โดยถ้าสูตรไม่มี Error ก็จะ return ผลลัพธ์ปกติ
.
ส่วนตัวผมคิดว่าฟังก์ชันนี้เป็น “ตัวช่วยมหาเทพ” สำหรับคนทำรายงานเลยครับ 😎
=IFERROR(value, value_if_error)
=IFERROR(value, value_if_error)
| Argument | Type | Required | Default | Description |
|---|---|---|---|---|
| value | Any | Yes | สูตรหรือค่าที่ต้องการตรวจสอบว่ามี Error หรือไม่ | |
| value_if_error | Any | Yes | ค่าที่จะให้แสดงผลแทนเมื่อพบ Error (เช่น 0, “-“, “ไม่พบ”) |
ใช้ IFERROR ครอบสูตรทั้งหมดใน Dashboard เพื่อเปลี่ยน Error ที่น่าตกใจให้กลายเป็นค่าว่าง ("") หรือขีด (-) ให้ดูมืออาชีพ
เมื่อแปลงข้อความเป็นวันที่ด้วย DATEVALUE ถ้าข้อความผิดรูปแบบจะเกิด #VALUE! ใช้ IFERROR เพื่อระบุบรรทัดที่มีปัญหา
IFERROR(VLOOKUP("XYZ", Products[Name:Price], 2, 0), "ไม่พบ")=IFERROR(VLOOKUP("XYZ", Products[Name:Price], 2, 0), "ไม่พบ")
ไม่พบ
IFERROR(100/0, 0)=IFERROR(100/0, 0)
IFERROR(100/5, 0)=IFERROR(100/5, 0)
20
IFERROR(VLOOKUP(ID, MainTable, 2, 0), IFERROR(VLOOKUP(ID, BackupTable, 2, 0), "ไม่พบทั้งคู่"))=IFERROR(VLOOKUP(ID, MainTable, 2, 0), IFERROR(VLOOKUP(ID, BackupTable, 2, 0), "ไม่พบทั้งคู่"))
ค่าจาก MainTable, BackupTable หรือ "ไม่พบทั้งคู่"
IFERROR(VLOOKUP(A1, Data, 2, 0), "")=IFERROR(VLOOKUP(A1, Data, 2, 0), "")
(ว่าง)
IFERROR(VALUE("abc"), 0)=IFERROR(VALUE("abc"), 0)
คำถามนี้เจอบ่อยมากครับ 😅
.
IFERROR ดักจับ Error **ทุกประเภท** (#N/A, #VALUE!, #REF!, #DIV/0!, #NUM!, #NAME?, #NULL!) ส่วน IFNA ดักจับเฉพาะ #N/A เท่านั้น
.
ส่วนตัวผมแนะนำให้ใช้ IFNA สำหรับ VLOOKUP เพราะจะได้รู้ว่าเกิด error อื่นหรือไม่ (เช่น #REF! จากการลบคอลัมน์) ซึ่งอาจเป็นสัญญาณว่าสูตรเราเขียนผิดนะครับ
**ไม่ควร!** นี่เป็นข้อผิดพลาดที่คนมือใหม่ทำกันบ่อย 😭
.
ควรใช้ IFERROR เฉพาะจุดที่รู้สาเหตุของ Error (เช่น VLOOKUP หาไม่เจอ, หารด้วยศูนย์) ถ้าใช้พร่ำเพรื่อจะทำให้ไม่รู้ว่าสูตรเราเขียนผิด (เช่น #NAME? เพราะพิมพ์ชื่อฟังก์ชันผิด)
.
Error บางอันเป็นสัญญาณบอกว่าสูตรเราผิด ไม่ควรซ่อนมันครับ
ดักได้**ทุกประเภท**เลยครับ 😎
.
– #N/A (หาไม่เจอ – VLOOKUP, MATCH)
– #VALUE! (ประเภทข้อมูลผิด)
– #REF! (อ้างอิงผิด)
– #DIV/0! (หารด้วยศูนย์)
– #NUM! (ตัวเลขไม่ valid)
– #NAME? (พิมพ์ชื่อฟังก์ชันผิด)
– #NULL! (intersection ว่าง)
.
เรียกว่าดักหมดจริงๆ ครับ ไม่มีรอด 555
คนสับสนกันเยอะเหมือนกันนะเรื่องนี้ 😅
.
IFERROR → return **ค่าทดแทน**เมื่อเกิด error
ISERROR → return **TRUE/FALSE** บอกว่าเกิด error หรือไม่
.
IFERROR สะดวกกว่าเพราะไม่ต้องใช้ IF ครอบ เขียนสั้นกว่า แถมไม่ต้องเขียนสูตรซ้ำ 2 ครั้งด้วยครับ
มีตั้งแต่ **Excel 2007** ครับ
.
ก่อนหน้านั้นต้องใช้ =IF(ISERROR(สูตร), ค่าทดแทน, สูตร) ซึ่งต้องเขียนสูตรซ้ำ 2 ครั้ง… ยุ่งมาก แถมช้ากว่าด้วย 😭
.
โชคดีที่ตอนนี้ทุกคนใช้ Excel 2007 ขึ้นไปกันแล้ว IFERROR จึงใช้ได้เลย
**มีครับ!** นี่เป็นจุดเด่นของ XLOOKUP เลย 😎
.
XLOOKUP มี argument [if_not_found] ซึ่งทำหน้าที่เหมือน IFERROR สำหรับ #N/A โดยเฉพาะ ไม่ต้องใช้ IFERROR ครอบอีกต่อไป
.
เลยทำให้สูตรสั้นลงและอ่านง่ายขึ้นเยอะครับ
IFERROR ช่วยดักจับ Error ทุกประเภทที่เกิดขึ้นในสูตร (#N/A, #VALUE!, #REF!, #DIV/0!, #NUM!, #NAME?, #NULL!) แล้วเปลี่ยนเป็นค่าที่เราต้องการแทน
.
ที่เจ๋งคือมันช่วยให้รายงานและ Dashboard ดูสะอาด ไม่มี Error แสดงให้ผู้ใช้งานเห็น ซึ่งเหมาะมากสำหรับดัก VLOOKUP/XLOOKUP ที่หาไม่เจอ ป้องกัน #DIV/0! จากการหารด้วยศูนย์ หรือแม้กระทั่งทำ Dashboard ให้ดูเป็นมืออาชีพ 😎
.
ส่วนตัวผมคิดว่าฟังก์ชันนี้เป็น “ตัวช่วยมหาเทพ” สำหรับคนทำรายงานเลยครับ เพราะถ้าไม่มี IFERROR รายงานเราก็จะเต็มไปด้วย #N/A, #DIV/0! ซึ่งดูไม่เป็นมืออาชีพเลย 😅