Excel公式技术问询:如何正确实现判断A列值为FALSE或#N/A时返回1且避免错误
Excel公式技术问询:如何正确实现判断A列值为FALSE或#N/A时返回1且避免错误
嗨,我完全懂你碰到的这个问题——原来的公式里,当A列单元格是#N/A错误时,NOT(A1)会直接返回#N/A,而Excel的OR函数只要其中一个参数是错误值,就会优先返回错误,哪怕另一个参数是TRUE,这就导致整个公式失效了。
给你几个靠谱的解决办法,都能完美实现你的需求:
方法一:分层判断,先处理错误值
这个思路是先检查单元格是否为错误,再判断是否为FALSE,彻底避开错误值进入NOT函数的情况:
=IF(ISERROR(A1),1,IF(NOT(A1),1,0))
- 当A1是#N/A时:
ISERROR(A1)返回TRUE,直接返回1 - 当A1是FALSE时:
ISERROR(A1)返回FALSE,进入第二个IF,NOT(A1)返回TRUE,返回1 - 当A1是TRUE时:第二个IF里
NOT(A1)返回FALSE,返回0
方法二:用IFERROR包裹NOT的结果,屏蔽错误
如果想保留OR的结构,可以把NOT(A1)用IFERROR包裹,让错误值转换成FALSE,这样OR就能正常判断:
=IF(OR(ISERROR(A1),IFERROR(NOT(A1),FALSE)),1,0)
- 当A1是#N/A时:
IFERROR(NOT(A1),FALSE)返回FALSE,但ISERROR(A1)是TRUE,OR整体返回TRUE,最终返回1 - 其他情况和预期一致
方法三(适用于Excel 2019及以后版本):用IFS函数简化逻辑
IFS函数支持多条件顺序判断,写起来更清晰:
=IFS(ISERROR(A1),1,NOT(A1),1,TRUE,0)
按顺序检查:先看是不是错误值,是就返回1;再看是不是FALSE,是就返回1;剩下的情况(也就是TRUE)返回0
这几个方法都能完美解决你遇到的#N/A错误问题,你可以根据自己的Excel版本和使用习惯选一个就行~
备注:内容来源于stack exchange,提问作者acolls_badger
相关产品推荐
相关产品推荐

