---
title: IFERROR – ดักจับ Error และเปลี่ยนเป็นค่าอื่น
url: https://www.thepexcel.com/functions/excel/logical/iferror/
type: function-explainer
program: Excel
syntax: "=IFERROR(value, value_if_error)"
date: 2025-12-19
scores:
  popularity: 9
  difficulty: 3
  usefulness: 10
---

# IFERROR – ดักจับ Error และเปลี่ยนเป็นค่าอื่น

> กำหนดค่าทดแทนเมื่อสูตรเกิด Error

## คำอธิบาย

IFERROR ช่วยดักจับ Error ทุกประเภทที่เกิดขึ้นในสูตร (#N/A, #VALUE!, #REF!, #DIV/0!, #NUM!, #NAME?, #NULL!) แล้วเปลี่ยนเป็นค่าที่เราต้องการแทน
.
ที่เจ๋งคือมันช่วยให้รายงานและ Dashboard ดูสะอาด ไม่มี Error แสดงให้ผู้ใช้งานเห็น โดยถ้าสูตรไม่มี Error ก็จะ return ผลลัพธ์ปกติ
.
ส่วนตัวผมคิดว่าฟังก์ชันนี้เป็น "ตัวช่วยมหาเทพ" สำหรับคนทำรายงานเลยครับ 😎

## Syntax

```excel
=IFERROR(value, value_if_error)
```

**excel**

```excel
=IFERROR(VLOOKUP(A1, Data, 2, 0), "ไม่พบ")
```

ดัก VLOOKUP ที่หาไม่เจอ (#N/A)

**excel**

```excel
=IFERROR(Sales/Qty, 0)
```

ป้องกันหารด้วยศูนย์ (#DIV/0!)

**excel**

```excel
=IFERROR(VLOOKUP(ID, Table1, 2, 0), IFERROR(VLOOKUP(ID, Table2, 2, 0), ""))
```

Nested IFERROR: ค้นหาจาก 2 ตารางต่อเนื่อง

**excel**

```excel
=IFERROR(VALUE(TextCell), 0)
```

ดัก #VALUE! เมื่อแปลงข้อความเป็นตัวเลขไม่ได้

## Arguments

| Name | Required | Type | Default | Description |
| --- | --- | --- | --- | --- |
| value | Yes | Any |  | สูตรหรือค่าที่ต้องการตรวจสอบว่ามี Error หรือไม่ |
| value_if_error | Yes | Any |  | ค่าที่จะให้แสดงผลแทนเมื่อพบ Error (เช่น 0, "-", "ไม่พบ") |

## เคสการใช้งาน

### ทำความสะอาด Dashboard

ใช้ IFERROR ครอบสูตรทั้งหมดใน Dashboard เพื่อเปลี่ยน Error ที่น่าตกใจให้กลายเป็นค่าว่าง ("") หรือขีด (-) ให้ดูมืออาชีพ

_เหมาะกับ:_ dashboard

### จัดการข้อมูลวันที่ผิดพลาด

เมื่อแปลงข้อความเป็นวันที่ด้วย DATEVALUE ถ้าข้อความผิดรูปแบบจะเกิด #VALUE! ใช้ IFERROR เพื่อระบุบรรทัดที่มีปัญหา

_เหมาะกับ:_ data-cleaning

## ตัวอย่าง

### 1. ตัวอย่างที่ 1: ดัก VLOOKUP หาไม่เจอ

```excel
=IFERROR(VLOOKUP("XYZ", Products[Name:Price], 2, 0), "ไม่พบ")
```

**ผลลัพธ์:** `ไม่พบ`

VLOOKUP หา "XYZ" ไม่เจอใน Table → เกิด #N/A
.
IFERROR ดักจับแล้วเปลี่ยนเป็น "ไม่พบ" แทน ทำให้ Dashboard สะอาด ผู้ใช้งานก็เข้าใจง่ายขึ้นด้วยครับ 😊

### 2. ตัวอย่างที่ 2: ป้องกันหารด้วยศูนย์

```excel
=IFERROR(100/0, 0)
```

**ผลลัพธ์:** `0`

100/0 เกิด #DIV/0! error ทันที
.
IFERROR ดักจับแล้วเปลี่ยนเป็น 0 แทน ป้องกัน error เมื่อตัวหารเป็น 0 หรือเซลล์ว่าง
.
ส่วนตัวผมใช้เทคนิคนี้บ่อยมากเวลาคำนวณเปอร์เซ็นต์ครับ 😅

### 3. ตัวอย่างที่ 3: ไม่มี Error ก็ return ปกติ

```excel
=IFERROR(100/5, 0)
```

**ผลลัพธ์:** `20`

100/5 = 20 ไม่มี error เกิดขึ้น
.
IFERROR ก็ return ผลลัพธ์ปกติ (20) ไม่ใช่ value_if_error นะครับ
.
คิดง่ายๆ ว่า IFERROR จะทำงานก็ต่อเมื่อเกิด error จริงๆ เท่านั้น

### 4. ตัวอย่างที่ 4: ค้นหาจาก 2 ตารางต่อเนื่อง

```excel
=IFERROR(VLOOKUP(ID, MainTable, 2, 0), IFERROR(VLOOKUP(ID, BackupTable, 2, 0), "ไม่พบทั้งคู่"))
```

**ผลลัพธ์:** `ค่าจาก MainTable, BackupTable หรือ "ไม่พบทั้งคู่"`

Nested IFERROR เจ๋งตรงนี้เลยครับ! 💡
.
หาใน MainTable ก่อน → ถ้าไม่เจอ → หาต่อใน BackupTable → ถ้าไม่เจอทั้งคู่ → แสดง "ไม่พบทั้งคู่"
.
เหมาะมากถ้ามีข้อมูลกระจายอยู่หลายแหล่งครับ

### 5. ตัวอย่างที่ 5: แสดงค่าว่างแทน Error

```excel
=IFERROR(VLOOKUP(A1, Data, 2, 0), "")
```

**ผลลัพธ์:** `(ว่าง)`

ใช้ "" (ข้อความว่าง) เป็น value_if_error
.
เซลล์จะดูว่างเปล่า ไม่มี #N/A แสดง เหมาะสำหรับ Dashboard ที่ต้องการความสะอาดตาครับ 😎

### 6. ตัวอย่างที่ 6: ดัก VALUE error

```excel
=IFERROR(VALUE("abc"), 0)
```

**ผลลัพธ์:** `0`

VALUE("abc") พยายามแปลงข้อความเป็นตัวเลข แต่ทำไม่ได้ → เกิด #VALUE!
.
IFERROR ดักจับแล้วเปลี่ยนเป็น 0 แทน ป้องกันการแสดง error เมื่อข้อมูลไม่ใช่ตัวเลข

## หมายเหตุเพิ่มเติม

💡 **ประเภท Error ใน Excel ที่ IFERROR ดักได้:**

| Error | สาเหตุ | ตัวอย่าง |
|-------|--------|----------|
| #N/A | หาไม่เจอ | VLOOKUP, MATCH |
| #VALUE! | ประเภทข้อมูลผิด | VALUE("abc") |
| #REF! | อ้างอิงผิด | ลบแถว/คอลัมน์ที่อ้างอิง |
| #DIV/0! | หารด้วยศูนย์ | A1/0 |
| #NUM! | ตัวเลขไม่ valid | SQRT(-1) |
| #NAME? | ชื่อไม่รู้จัก | พิมพ์ชื่อฟังก์ชันผิด |
| #NULL! | intersection ว่าง | A1:A3 B1:B3 |

**เปรียบเทียบฟังก์ชันดัก Error:**

| ฟังก์ชัน | ดักได้ |
|----------|--------|
| IFERROR | ทุกประเภท |
| IFNA | เฉพาะ #N/A |
| ISERROR | ทุกประเภท (แต่ return TRUE/FALSE) |
| ISNA | เฉพาะ #N/A (แต่ return TRUE/FALSE) |
.
ส่วนตัวผมแนะนำให้ใช้ IFNA แทน IFERROR สำหรับ VLOOKUP เพราะจะได้รู้ว่าเกิด error อื่นๆ หรือเปล่า (เช่น #REF!, #VALUE!) ซึ่งอาจเป็นสัญญาณว่าสูตรเราเขียนผิดนะครับ 😅
.
**Tips:**
- XLOOKUP มี [if_not_found] ในตัวอยู่แล้ว ไม่ต้องใช้ IFERROR ครอบ 😎
- ถ้า value_if_error ต้องคำนวณซ้ำ ลองใช้ LET ช่วยได้ครับ
- อย่าใช้ IFERROR ครอบทุกสูตรเพราะจะทำให้ไม่รู้ว่าสูตรเขียนผิด

## คำถามที่พบบ่อย

**Q: IFERROR ต่างจาก IFNA อย่างไร?**

คำถามนี้เจอบ่อยมากครับ 😅
.
IFERROR ดักจับ Error **ทุกประเภท** (#N/A, #VALUE!, #REF!, #DIV/0!, #NUM!, #NAME?, #NULL!) ส่วน IFNA ดักจับเฉพาะ #N/A เท่านั้น
.
ส่วนตัวผมแนะนำให้ใช้ IFNA สำหรับ VLOOKUP เพราะจะได้รู้ว่าเกิด error อื่นหรือไม่ (เช่น #REF! จากการลบคอลัมน์) ซึ่งอาจเป็นสัญญาณว่าสูตรเราเขียนผิดนะครับ

**Q: ควรใช้ IFERROR ครอบทุกสูตรเลยไหม?**

**ไม่ควร!** นี่เป็นข้อผิดพลาดที่คนมือใหม่ทำกันบ่อย 😭
.
ควรใช้ IFERROR เฉพาะจุดที่รู้สาเหตุของ Error (เช่น VLOOKUP หาไม่เจอ, หารด้วยศูนย์) ถ้าใช้พร่ำเพรื่อจะทำให้ไม่รู้ว่าสูตรเราเขียนผิด (เช่น #NAME? เพราะพิมพ์ชื่อฟังก์ชันผิด)
.
Error บางอันเป็นสัญญาณบอกว่าสูตรเราผิด ไม่ควรซ่อนมันครับ

**Q: IFERROR ดัก Error อะไรได้บ้าง?**

ดักได้**ทุกประเภท**เลยครับ 😎
.
- #N/A (หาไม่เจอ - VLOOKUP, MATCH)
- #VALUE! (ประเภทข้อมูลผิด)
- #REF! (อ้างอิงผิด)
- #DIV/0! (หารด้วยศูนย์)
- #NUM! (ตัวเลขไม่ valid)
- #NAME? (พิมพ์ชื่อฟังก์ชันผิด)
- #NULL! (intersection ว่าง)
.
เรียกว่าดักหมดจริงๆ ครับ ไม่มีรอด 555

**Q: IFERROR กับ ISERROR ต่างกันอย่างไร?**

คนสับสนกันเยอะเหมือนกันนะเรื่องนี้ 😅
.
IFERROR → return **ค่าทดแทน**เมื่อเกิด error
ISERROR → return **TRUE/FALSE** บอกว่าเกิด error หรือไม่
.
IFERROR สะดวกกว่าเพราะไม่ต้องใช้ IF ครอบ เขียนสั้นกว่า แถมไม่ต้องเขียนสูตรซ้ำ 2 ครั้งด้วยครับ

**Q: IFERROR มีตั้งแต่ Excel เวอร์ชันไหน?**

มีตั้งแต่ **Excel 2007** ครับ
.
ก่อนหน้านั้นต้องใช้ =IF(ISERROR(สูตร), ค่าทดแทน, สูตร) ซึ่งต้องเขียนสูตรซ้ำ 2 ครั้ง... ยุ่งมาก แถมช้ากว่าด้วย 😭
.
โชคดีที่ตอนนี้ทุกคนใช้ Excel 2007 ขึ้นไปกันแล้ว IFERROR จึงใช้ได้เลย

**Q: XLOOKUP มี IFERROR ในตัวหรือเปล่า?**

**มีครับ!** นี่เป็นจุดเด่นของ XLOOKUP เลย 😎
.
XLOOKUP มี argument [if_not_found] ซึ่งทำหน้าที่เหมือน IFERROR สำหรับ #N/A โดยเฉพาะ ไม่ต้องใช้ IFERROR ครอบอีกต่อไป
.
เลยทำให้สูตรสั้นลงและอ่านง่ายขึ้นเยอะครับ

## ฟังก์ชันที่เกี่ยวข้อง

- [IF – ฟังก์ชันตรรกะพื้นฐาน](https://www.thepexcel.com/functions/excel/logical/if/)
- [IFNA – แทนค่าเมื่อพบ #N/A Error](https://www.thepexcel.com/functions/excel/logical/ifna/)
- [IFS – ทดสอบหลายเงื่อนไขแบบมีลำดับความสำคัญ](https://www.thepexcel.com/functions/excel/logical/ifs/)
- [ISERR – เช็ค Error (ไม่รวม #N/A)](https://www.thepexcel.com/functions/excel/information/iserr/)
- [ISERROR – ตรวจสอบว่ามี Error หรือไม่ (ทุกประเภท)](https://www.thepexcel.com/functions/excel/information/iserror/)
- [ISNA – ตรวจสอบว่าค่าเป็น Error #N/A หรือไม่](https://www.thepexcel.com/functions/excel/information/isna/)
- [LET – กำหนดตัวแปรในสูตรเพื่อเพิ่มความเร็วและความชัดเจน](https://www.thepexcel.com/functions/excel/logical/let/)
- [VALUE – แปลงข้อความเป็นตัวเลข](https://www.thepexcel.com/functions/excel/text/value/)
- [VLOOKUP – ฟังก์ชันค้นหาค่าแนวตั้งจากตาราง](https://www.thepexcel.com/functions/excel/lookup-and-reference/vlookup/)
- [XLOOKUP – ฟังก์ชันค้นหาข้อมูลแนวตั้งและแนวนอน](https://www.thepexcel.com/functions/excel/lookup-and-reference/xlookup/)

## แหล่งข้อมูลเพิ่มเติม

- [Microsoft Support: IFERROR function](https://support.microsoft.com/en-us/office/iferror-function-c526fd07-caeb-47b8-8bb6-63f3e417f611) _(official)_
- [ExcelJet: Excel IFERROR function](https://exceljet.net/functions/iferror-function) _(guide)_
- [Xelplus: IFERROR vs IFNA](https://www.xelplus.com/iferror-ifna-excel/) _(tutorial)_

---

_Source: [https://www.thepexcel.com/functions/excel/logical/iferror/](https://www.thepexcel.com/functions/excel/logical/iferror/)_
