ISNUMBER语句只读第一个条件
美好的一天,
我试图插入这个公式到Excel中search单元格中的特定术语,如果find该术语,则返回值“50”。
我已经能够使用下面的基本公式成功实现这一点:
=IF(C1394<>70,C1394,IF(ISNUMBER(SEARCH("*PD*",B1394)),"50",IF(ISNUMBER(SEARCH("*OD*",B1394)),"50",IF(ISNUMBER(SEARCH("*OC*",B1394)),"50",IF(ISNUMBER(SEARCH("*OF*",B1394)),"50",IF(ISNUMBER(SEARCH("*PC*",B1394)),"50",IF(ISNUMBER(SEARCH("*MS*",B1394)),"50",C1394)))))))
我尝试使用下面的方法使我的公式更加高效和dynamic,但excel只读取第一个条件“ PD ”而忽略其余部分
=IF(C8266 =70,IF(--ISNUMBER(SEARCH({"*PD*","*OD*","*OC*","*OF*","*PC*","*MS*"},B8266)),"50",C8266),C8266)
有人可以请指教我做错了什么?
您只是缺less一个OR子句,请参阅: http : //www.mrexcel.com/forum/excel-questions/601195-check-multiple-text-strings-cell.html#post2977162
所以你要:
=IF(C8266=70,IF(OR(ISNUMBER(SEARCH({"*PD*","*OD*","*OC*","*OF*","*PC*","*MS*"},B8266))),"50",C8266),C8266)
你做错了什么是你正在试图评估一个数组,通常不会评估数组。 您可以通过按住Ctrl + Shift键来评估这些公式,然后按Enter键 。
否则,你的公式可以缩写为:
=IF(OR(ISNUMBER((C8266=70)*SEARCH({"PD","OD","OC","OF","PC","MS"},B8266))),"50",C8266)
-
SEARCH
不需要通配符。 - 一个乘以数字的布尔值给出一个数字。 错误乘以数字会产生错误。 所以你可以安全地将第一次和第二次检查结合在一起,并放弃
--
。 -
OR
用于检查数字和/或错误数组中是否至less有一个数字。
同样的数组被调用(使用Ctrl + Shift + Enter )。