MICROSOFT

EP08. “IFNA IFNA 函数”

首页 Microsoft 工具 Excel · Functions · Formula Errors · EP08
约 5 分钟· #EP08#Excel#Formula Errors
🔒 登录后可标记已读
  • IFNA 跟 EP01 的 IFERROR 很像,差别是 IFNA 只专门拦截 #N/A 这一种错误
  • 其他类型的错误不会被拦截,更适合「只想处理查无结果」的场景
  • 讲基础用法、ISNA 检测函数,以及旧版本的替代写法
  • 前置知识是 EP01 的 IFERROR
  • 学完能更精准地处理 VLOOKUP 找不到结果的情况

重点内容


适用版本

IFNA 从 Excel 2013 开始才有;Excel 2010 / 2007 需要用替代写法。


IFNA 和 IFERROR 怎么选

函数拦截范围适合场景
IFNA只拦截 #N/A只想处理「查无结果」,公式本身写错时仍会正常报错提醒你
IFERROR拦截所有类型错误不在意是哪种错误,只想有替代结果

问题场景:VLOOKUP 找不到匹配项

VLOOKUP 找不到对应的值时,会返回 #N/A 错误。


用 IFNA 替换成友善提示

=IFNA(VLOOKUP(A1,B1:C10,2,FALSE),"Not found")

如果 VLOOKUP 找不到匹配,显示 "Not found";如果 VLOOKUP 本身有错误(例如公式写错),IFNA 不会拦截,会照常显示原本的错误代码,方便你发现公式本身的问题。


结果没有错误时

如果 VLOOKUP 有正常找到匹配项,IFNA 会直接返回 VLOOKUP 查到的结果。


ISNA 函数:单纯检测是否为 #N/A

=ISNA(A1)

返回 TRUE 或 FALSE,只判断是不是 #N/A 这个特定错误,不像 IFERROR/IFNA 会直接替换结果。


旧版本替代写法(Excel 2010 / 2007)

  1. IF 搭配 ISNA

=IF(ISNA(VLOOKUP(A1,B1:C10,2,FALSE)),"Not found",VLOOKUP(A1,B1:C10,2,FALSE))

  1. 或者改用范围更广的 IFERROR(会拦截所有类型错误,不只是 #N/A):

=IFERROR(VLOOKUP(A1,B1:C10,2,FALSE),"Not found")


函数速查

函数语法用途例子
IFNA=IFNA(value,value_if_na)只拦截 #N/A 错误,返回替代值=IFNA(VLOOKUP(...),"Not found")
ISNA=ISNA(value)判断是否为 #N/A,返回 TRUE/FALSE=ISNA(A1)

学完你会

  • ✅ 能用 IFNA 精准拦截 #N/A 错误,不影响其他类型错误的报错提示
  • ✅ 能用 ISNA 单纯检测一个值是不是 #N/A,不直接替换结果
  • ✅ 知道 Excel 2010/2007 没有 IFNA,要改用 IF+ISNA 或 IFERROR 代替

常见错误

  • 该用 IFNA 精准处理「查无结果」的场景,却用了范围更广的 IFERROR,结果把公式本身写错的问题也一起悄悄隐藏了
  • 在 Excel 2010/2007 直接套用 IFNA 函数,因为版本不支持会直接报错,要改用 IF+ISNA 或 IFERROR
  • 把 ISNA(只判断)和 IFNA(判断并替换)搞混,以为 ISNA 会自动改变显示结果

Sources

Blog / Website:

  1. IFNA