检查给定单元格中是否出现多个string的更好方法
在过去,我使用了=IF(OR(ISNUMBER(SEARCH("*orange*",A1),ISNUMBER(SEARCH("*apple*",A1)),1,0))
来检查在这种情况下,如果我想检查是否有更多的string出现,我需要继续添加更多的ISNUMBER(SEARCH())
行,对于大量的string,这是不可行的。更好的方法来做到这一点,而不使用VBA,我可能会失踪?
你可以使用这个公式(注意,你不需要在SEARCH
使用星号通配符):
=SUMPRODUCT(--ISNUMBER(SEARCH({"orange","apple"},A1)))>0
如果这两个单词中的任何一个都在A1中,这将会使你成为TRUE
。 如果您想要自定义结果消息,或者使用MIN
获取1和0,则可以将其封装在IF
:
=MIN(SUMPRODUCT(--ISNUMBER(SEARCH({"orange","apple"},A1))),1)
公式的工作原理是这样的:
SEARCH({"orange","apple"},A1)
在A1中查找单词,如果find则返回值数组,否则返回错误。
ISNUMBER
检查数组中的每个结果。
这两个--
在前面将TRUE和FALSE分别转换为1和0。
SUMPRODUCT
将1和0相加。如果至less为1,则会得到0以上的最终结果。