检查给定单元格中是否出现多个字符串的更好方法

时间:2014-06-17 16:53:47

标签: excel

在过去,我使用=IF(OR(ISNUMBER(SEARCH("*orange*",A1),ISNUMBER(SEARCH("*apple*",A1)),1,0))来检查在这种情况下,橙色或苹果是否出现在单元格A1中的任何位置。如果我想检查是否存在更多字符串,我需要继续添加更多ISNUMBER(SEARCH())行。对于大量字符串,这是不可行的。如果没有使用我可能缺少的VBA,有没有更好的方法呢?

1 个答案:

答案 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。