Microsoft Lab
全部软件
Excel公式错误(Formula Errors)约 4 分钟

IFNA IFNA 函数

重点内容


适用版本

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

Sources

Blog / Website:

  1. IFNA
只记在你的浏览器里,换设备不会同步。