---
title: "ISNA – ตรวจสอบว่าค่าเป็น Error #N/A หรือไม่"
url: https://www.thepexcel.com/functions/excel/information/isna/
type: function-explainer
program: Excel
syntax: =ISNA(value)
date: 2025-12-02
updated: 2025-12-25
scores:
  popularity: 6
  difficulty: 2
  usefulness: 7
---

# ISNA – ตรวจสอบว่าค่าเป็น Error #N/A หรือไม่

> ISNA ตรวจสอบเฉพาะ Error #N/A ที่เกิดจากการค้นหาไม่เจอในฟังก์ชันต่างๆ เช่น VLOOKUP หรือ MATCH มีประโย

## คำอธิบาย

ISNA ตรวจสอบเฉพาะ Error #N/A ที่เกิดจากการค้นหาไม่เจอในฟังก์ชันต่างๆ เช่น VLOOKUP หรือ MATCH มีประโยชน์มากเมื่อต้องแยกแยะระหว่าง "หาไม่เจอ" กับ "สูตรคิดผิด"

## Syntax

```excel
=ISNA(value)
```

## Arguments

| Name | Required | Type | Default | Description |
| --- | --- | --- | --- | --- |
| value | Yes | Any |  | ค่า เซลล์ หรือผลลัพธ์จากสูตรที่ต้องการตรวจสอบว่าเป็น #N/A หรือไม่ สามารถใส่ได้ทุกชนิด (ตัวเลข ข้อความ ผลลัพธ์สูตร ฯลฯ) |

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

### จัดการ Error จากการค้นหาข้อมูล

ใช้ตรวจสอบว่าข้อมูลที่ User กรอกมีอยู่ในฐานข้อมูลหรือไม่ โดยไม่สนใจ Error ประเภทอื่นที่เกิดจากสูตรผิดพลาด

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

### การตรวจสอบความสมบูรณ์ของข้อมูล

เช็คว่ามีรายการใดในตารางที่ Lookup แล้วไม่พบข้อมูล เพื่อทำรายงานสรุปรายการที่ตกหล่น

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

## ตัวอย่าง

### 1. ตรวจสอบผลลัพธ์ VLOOKUP หาค่าไม่เจอ

```excel
=ISNA(VLOOKUP("Apple", A1:B10, 2, 0))
```

**ผลลัพธ์:** `TRUE (ถ้าไม่เจอ Apple) / FALSE (ถ้าเจอหรือเกิด Error อื่น)`

ถ้า VLOOKUP หาคำว่า "Apple" ไม่เจอในคอลัมน์แรก จะคืนค่า #N/A ทำให้ ISNA คืนค่า TRUE แต่ถ้าเจอหรือเกิด Error อื่น (เช่น #REF! จากช่วงไม่ถูกต้อง) จะได้ FALSE

### 2. ใช้กับ IF เพื่อแสดงข้อความแทนค่า #N/A

```excel
=IF(ISNA(VLOOKUP(A1, Database, 2, 0)), "ไม่พบข้อมูล", VLOOKUP(A1, Database, 2, 0))
```

**ผลลัพธ์:** `"ไม่พบข้อมูล" หรือค่าจากการค้นหา`

แถบเซลล์ A1 ไม่อยู่ในฐานข้อมูล VLOOKUP จะคืน #N/A เมื่อ ISNA ตรวจจับจะให้แสดงข้อความ "ไม่พบข้อมูล" แทน นี่คือวิธีการสร้าง Error Handler โดยไม่ใช้ IFERROR

### 3. แยกแยะประเภท Error ต่างๆ

```excel
=IF(ISNA(MATCH(E2, List, 0)), "หาไม่เจอ", IF(ISERROR(MATCH(E2, List, 0)), "Error อื่นๆ", "ค้นหาเจอ"))
```

**ผลลัพธ์:** `"หาไม่เจอ" / "Error อื่นๆ" / "ค้นหาเจอ"`

ใช้ ISNA ตรวจสอบ #N/A ก่อน หลังจากนั้นใช้ ISERROR ตรวจสอบ Error ชนิดอื่น เพื่อแยกแยะให้ชัดเจนว่าปัญหาคืออะไร

### 4. นับจำนวน #N/A ในช่วงข้อมูล

```excel
=SUMPRODUCT(--ISNA(A1:A100))
```

**ผลลัพธ์:** `ตัวเลขแสดงจำนวน #N/A ทั้งหมด`

ใช้ SUMPRODUCT กับ ISNA เพื่อนับว่า Cell A1:A100 มี #N/A กี่อัน วิธีนี้สะดวกมากในการตรวจสอบ Data Quality เพื่อดูว่า Lookup ไหนล้มเหลวจำนวนมาก

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

- ผมแนะนำให้ใช้ ISNA เมื่อต้องการ Debug สูตรขนาดใหญ่เพื่อหาว่าจุดไหนที่ค้นหาไม่เจอจริงๆ ซึ่งแตกต่างจาก Error จากการเขียนสูตรผิด (เช่น #VALUE! หรือ #REF!) นี่ช่วยหาสาเหตุปัญหาได้เร็วมาก

- ส่วนตัวผมชอบใช้ SUMPRODUCT(--ISNA(range)) เพื่อนับจำนวน #N/A ในคอลัมน์ เพื่อประเมิน Data Quality ว่าค่าไหนที่ Lookup ไม่เจอเยอะแยะ ถ้านับได้เยอะ อาจต้องตรวจสอบฐานข้อมูลหรือ Lookup Rules

- อย่าลืมว่า ISNA ไม่ได้แก้ปัญหา มันแค่ตรวจจับเท่านั้น ถ้าต้องการแก้ Error ให้ใช้ IFNA, IFERROR, หรือตรวจสอบข้อมูล Lookup ว่าถูกต้องหรือไม่

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

**Q: ผม Error #N/A แล้ว ต้องใช้ ISNA ยังไงถึงแก้ได้?**

ISNA ไม่ได้แก้ Error หรือทำให้ #N/A หายไป มันแค่ตรวจจับเท่านั้น ถ้าต้องการแก้ให้ใช้ IFNA หรือ IFERROR แทน เช่น =IFNA(VLOOKUP(...), 0) นี่คือวิธีที่จะเปลี่ยน #N/A เป็นค่าอื่น

**Q: ISNA ต่างจาก ISERROR อย่างไร?**

ISNA ตรวจจับเฉพาะ #N/A เท่านั้น ส่วน ISERROR จะตรวจจับ Error ทุกชนิด (#N/A, #VALUE!, #REF!, #DIV/0!, #NAME?, #NUM!, #NULL! ฯลฯ) ถ้าต้องการรู้เฉพาะว่า "ค้นหาไม่เจอ" ใช้ ISNA แต่ถ้าต้องการจับ Error ใดๆ ใช้ ISERROR

**Q: ควรใช้ IFNA หรือ ISNA?**

ถ้าต้องการแทนที่ #N/A ด้วยค่าอื่นทันที (เช่น 0 หรือข้อความ) ให้ใช้ IFNA เพราะเขียนสั้นกว่า เช่น =IFNA(VLOOKUP(...), 0) แต่ถ้าต้องการแค่ตรวจสอบเป็น TRUE/FALSE เพื่อนำไปใช้ใน Logic อื่น หรือต้องการนับจำนวน #N/A ให้ใช้ ISNA

**Q: #N/A เกิดจากอะไรบ้าง?**

เกิดจากการค้นหาไม่เจอในฟังก์ชัน VLOOKUP, HLOOKUP, MATCH, INDEX, LOOKUP, XLOOKUP เป็นต้น บ่อยๆ คือ typo, space ซ่อนอยู่, หรือข้อมูลค้นหาจริงๆ ไม่อยู่ในตาราง หรือ Reference ไป Sheet อื่นซึ่งปิด workbook ไว้

**Q: สามารถใช้ ISNA กับ Array Formula ได้ไหม?**

ได้ครับ ISNA ที่นำไปใช้กับ Range จะคืนค่า Array ของ TRUE/FALSE ตามจำนวนเซลล์ เช่น =ISNA(VLOOKUP(A1:A10, Data, 2, 0)) จะได้ผลลัพธ์ 10 ค่า (ใน Excel 365 จะ Spill ลงมาเอง)

**Q: ทำไมผลลัพธ์เป็น #N/A แต่ ISNA(range) ถึง Error?**

เพราะฟังก์ชัน VLOOKUP หรือ MATCH ใช้ได้กับ Single Value ไม่ได้ใช้กับ Array ถ้าต้องการตรวจจับ Error หลายๆ เซลล์พร้อมกัน ลองใช้ IFERROR แทน =IFERROR(VLOOKUP(A:A, Data, 2, 0), "") แบบนี้ดีกว่า

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

- [ISERROR – ตรวจสอบว่ามี Error หรือไม่ (ทุกประเภท)](https://www.thepexcel.com/functions/excel/information/iserror/)
- [IFNA – แทนค่าเมื่อพบ #N/A Error](https://www.thepexcel.com/functions/excel/logical/ifna/)
- [IFERROR – ดักจับ Error และเปลี่ยนเป็นค่าอื่น](https://www.thepexcel.com/functions/excel/logical/iferror/)
- [VLOOKUP – ฟังก์ชันค้นหาค่าแนวตั้งจากตาราง](https://www.thepexcel.com/functions/excel/lookup-and-reference/vlookup/)
- [MATCH – ค้นหาตำแหน่งของค่าในรายการ](https://www.thepexcel.com/functions/excel/lookup-and-reference/match/)

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

- [Microsoft Support: IS Functions (ISNA, ISERROR, etc.)](https://support.microsoft.com/en-us/office/is-functions-0f2d7971-6019-40a0-a171-f2d869135665) _(official)_
- [Microsoft Learn: ISNA Function Reference](https://learn.microsoft.com/en-us/office/vba/api/excel.isna) _(official)_
- [Excel Formula Tutorial: Understanding #N/A Error](https://support.microsoft.com/en-us/office/how-to-correct-a-na-error-15e1b616-fbf2-413c-8206-fd76b3d490d7) _(official)_

---

_Source: [https://www.thepexcel.com/functions/excel/information/isna/](https://www.thepexcel.com/functions/excel/information/isna/)_
