在过去,我使用=IF(OR(ISNUMBER(SEARCH("*orange*",A1),ISNUMBER(SEARCH("*apple*",A1)),1,0))
来检查在这种情况下,橙色或苹果是否出现在单元格A1中的任何位置。如果我想检查是否存在更多字符串,我需要继续添加更多ISNUMBER(SEARCH())
行。对于大量字符串,这是不可行的。如果没有使用我可能缺少的VBA,有没有更好的方法呢?
答案 0 :(得分:3)
您可以使用此公式(请注意,您不需要使用带有SEARCH
的星号通配符):
=SUMPRODUCT(--ISNUMBER(SEARCH({"orange","apple"},A1)))>0
如果这两个单词中的任何一个在A1中,这将给你TRUE
。如果您想要自定义结果消息或使用IF
获得1和0,可以将其包装在MIN
中:
=MIN(SUMPRODUCT(--ISNUMBER(SEARCH({"orange","apple"},A1))),1)
公式的工作原理如下:
SEARCH({"orange","apple"},A1)
查找A1中的单词并返回一个值数组(如果找到),否则返回错误。
ISNUMBER
检查数组中的每个结果。
前面的两个--
将TRUE和FALSE分别转换为1和0。
SUMPRODUCT
将那些1和0加起来。如果它至少为1,那么你的最终结果将高于0。