สูตรตระกูล ISERROR, ISERR และ ISNA ใช้ตรวจว่าเซลล์หรือสูตรกำลังเป็น Error อยู่หรือไม่ แล้วคืนค่าเป็น TRUE หรือ FALSE ต่างจาก IFERROR ที่เปลี่ยนค่าให้เลย สูตรกลุ่มนี้เหมาะกับตอนที่เราอยากเช็คเงื่อนไขก่อน แล้วแตกไปทำอย่างอื่น เช่น นับจำนวน Error หรือไฮไลต์เซลล์
ความต่างของทั้งสามสูตร
| สูตร | คืน TRUE เมื่อเจอ |
ISERROR |
Error ทุกชนิด (#N/A, #VALUE!, #REF!, #DIV/0!, #NUM!, #NAME?, #NULL!) |
ISERR |
Error ทุกชนิด ยกเว้น #N/A |
ISNA |
เฉพาะ #N/A เท่านั้น |
รูปแบบเหมือนกันหมดคือ =ISERROR(ค่า) โดย “ค่า” จะเป็นเซลล์หรือสูตรก็ได้
ตัวอย่างที่ 1: แตกเงื่อนไขด้วย IF
ต่างจาก IFERROR ตรงที่เราเลือกได้ว่าถ้าเจอ Error จะให้ทำสูตรอีกแบบ ไม่ใช่แค่แสดงข้อความ
=IF(ISERROR(B2/C2),0,B2/C2)| A | B | C | D | |
|---|---|---|---|---|
| 1 | เดือน | ยอดขาย | จำนวนวันขาย | เฉลี่ย/วัน |
| 2 | ม.ค. | 30,000 | 0 | 0 |
| 3 | ก.พ. | 28,000 | 20 | 1,400 |
ถ้า B2/C2 เป็น Error (หารด้วย 0) จะได้ 0 ถ้าไม่ Error ก็คำนวณตามจริง กรณีง่ายๆ แบบนี้เขียนด้วย =IFERROR(B2/C2,0) สั้นกว่า แต่ถ้าปลายทางที่ Error กับไม่ Error ต้องใช้สูตรคนละแบบ การใช้ ISERROR คู่กับ IF จะยืดหยุ่นกว่า
ตัวอย่างที่ 2: นับจำนวน Error ในคอลัมน์
=SUMPRODUCT(--ISERROR(C2:C6))| A | C | |
|---|---|---|
| 1 | รหัส | ผลค้นหา |
| 2 | A1 | 590 |
| 3 | A9 | #N/A |
| 4 | A2 | 320 |
| 5 | A8 | #N/A |
| 6 | A3 | #DIV/0! |
ผลลัพธ์ที่ E1 คือ 3 ISERROR สร้างลิสต์ TRUE/FALSE ให้ทั้งช่วง เครื่องหมาย -- แปลง TRUE/FALSE เป็น 1/0 แล้ว SUMPRODUCT รวมยอด ถ้าอยากนับเฉพาะ #N/A ให้เปลี่ยนเป็น ISNA จะได้ 2
ตัวอย่างที่ 3: เลือกใช้ ISNA เมื่ออยากแยก “ไม่พบ” ออกจาก “สูตรพัง”
=IF(ISNA(VLOOKUP(A2,$E$2:$F$9,2,0)),"ลูกค้าใหม่","ลูกค้าเก่า")| A | B | C | |
|---|---|---|---|
| 1 | เบอร์โทร | ยอดซื้อ | ประเภท |
| 2 | 0891112222 | 1,200 | ลูกค้าใหม่ |
| 3 | 0863334444 | 800 | ลูกค้าเก่า |
ISNA ดักเฉพาะกรณี VLOOKUP หาเบอร์ไม่เจอ (แปลว่าเป็นลูกค้าใหม่) ถ้าใช้ ISERROR แทน แล้วบังเอิญช่วงตารางพิมพ์ผิดจนเป็น #REF! สูตรจะไปตอบว่า “ลูกค้าใหม่” ทั้งที่จริงๆ สูตรพัง การใช้ ISNA จึงปลอดภัยกว่าในงานค้นหา เหมือนที่อธิบายไว้ในบทความ IFNA
ใช้กับ Conditional Formatting ไฮไลต์เซลล์ที่ Error
เลือกช่วงข้อมูล → แท็บ Home → Conditional Formatting → New Rule → Use a formula เลือกสูตร =ISERROR(A1) (อ้างอิงเซลล์มุมบนซ้ายของช่วงที่เลือก) แล้วตั้งสีพื้นเป็นสีแดงอ่อน เซลล์ที่เป็น Error จะถูกไฮไลต์อัตโนมัติ ดูวิธีตั้งกฎแบบละเอียดที่ Conditional Formatting
เลือกใช้ตัวไหนดี
- แค่อยากซ่อน/แทนที่ Error — ใช้ IFERROR หรือ IFNA สั้นและอ่านง่ายกว่า
- อยากแตกไปทำสูตรคนละแบบเมื่อเจอ Error — ใช้
IF(ISERROR(...), สูตร ก, สูตร ข) - อยากนับ หรือไฮไลต์ Error — ใช้ ISERROR / ISNA คู่กับ SUMPRODUCT หรือ Conditional Formatting
- อยากแยก “ไม่พบข้อมูล” ออกจาก “สูตรผิด” — ใช้ ISNA