Excel如何修改LOOKUP公式实现Warning优先级高于Error的取值需求
需求说明
- 检查Excel表格A1:A11区域中是否存在不等于「O.K.」的非空内容
- 若存在异常值,需按Warning优先级高于Error的规则,将结果返回至A12单元格
原公式问题
你当前使用的公式:
=LOOKUP(2,1/((A1:A11<>"O.K.")*(A1:A11<>"")),A1:A11)
逻辑是返回区域内最后一个符合「非O.K.、非空」条件的值,不会区分Warning和Error的优先级,因此当区域内最后一个异常值为Error时,就会直接返回Error,不符合优先级要求。
修正后公式(全Excel版本兼容)
直接使用优先级判断逻辑即可,公式简洁不易出错:
=IF(COUNTIF(A1:A11,"Warning")>0,"Warning",IF(COUNTIF(A1:A11,"Error")>0,"Error",""))
逻辑说明
- 首先判断区域内是否存在Warning,只要出现至少1次,直接返回Warning,无视是否存在Error
- 区域内无Warning时,再判断是否存在Error,存在则返回Error
- 两种异常值都不存在时,返回空值,符合需求
内容的提问来源于stack exchange,提问作者Michi
相关产品推荐
相关产品推荐

