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 )。