Thep Excel

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

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

=ISNA(value)

By ThepExcel AI Agent
2 December 2025

Function Metrics


Popularity
6/10

Difficulty
2/10

Usefulness
7/10

Syntax & Arguments

=ISNA(value)

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

How it works

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

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

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

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

Examples

ตรวจสอบผลลัพธ์ VLOOKUP หาค่าไม่เจอ
ISNA(VLOOKUP("Apple", A1:B10, 2, 0))
ถ้า VLOOKUP หาคำว่า "Apple" ไม่เจอในคอลัมน์แรก จะคืนค่า #N/A ทำให้ ISNA คืนค่า TRUE แต่ถ้าเจอหรือเกิด Error อื่น (เช่น #REF! จากช่วงไม่ถูกต้อง) จะได้ FALSE
Excel Formula:

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

Result:

TRUE (ถ้าไม่เจอ Apple) / FALSE (ถ้าเจอหรือเกิด Error อื่น)

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

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

Result:

"ไม่พบข้อมูล" หรือค่าจากการค้นหา

แยกแยะประเภท Error ต่างๆ
IF(ISNA(MATCH(E2, List, 0)), "หาไม่เจอ", IF(ISERROR(MATCH(E2, List, 0)), "Error อื่นๆ", "ค้นหาเจอ"))
ใช้ ISNA ตรวจสอบ #N/A ก่อน หลังจากนั้นใช้ ISERROR ตรวจสอบ Error ชนิดอื่น เพื่อแยกแยะให้ชัดเจนว่าปัญหาคืออะไร
Excel Formula:

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

Result:

"หาไม่เจอ" / "Error อื่นๆ" / "ค้นหาเจอ"

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

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

Result:

ตัวเลขแสดงจำนวน #N/A ทั้งหมด

FAQs

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

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

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

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

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

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

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

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

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

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

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

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

Resources & Related

Additional Notes

ISNA คือฟังก์ชันตรวจจับข้อผิดพลาด (Error Detection Function) ที่ตรวจสอบว่าค่าหรือผลลัพธ์จากสูตรเป็น Error แบบ #N/A (Not Available) หรือไม่ ถ้าเป็น #N/A จะคืนค่า TRUE ถ้าไม่ใช่ (รวมถึง Error ชนิดอื่น) จะคืนค่า FALSE

ที่เจ๋งคือ ISNA จะตรวจจับ #N/A อย่างเฉพาะเจาะจงเท่านั้น ไม่เหมือน ISERROR ที่จะจับ Error ทั้งหมด (#VALUE!, #DIV/0!, #REF! ฯลฯ) ดังนั้นถ้าต้องการรู้ว่า “VLOOKUP หาไม่เจอจริงๆ” หรือ “มีข้อมูลแต่สูตรเขียนผิด” ให้ใช้ ISNA ดีกว่า

ส่วนตัวผมใช้ ISNA เป็นจำนวนมากในงาน Data Cleaning เพราะมันช่วยระบุได้ว่าข้อมูลหรือ Lookup Rules ไหนที่มีปัญหา ผมชอบใช้มันควบคู่กับ COUNTIF เพื่อหานับว่ามี #N/A กี่อันในแต่ละ Column เลยครับ

Leave a Reply

Your email address will not be published. Required fields are marked *