只需要使用公式就可以很容易地做到这一点,只要您不太在意可能不恰当地查找单词的部分内容。虽然忽略了一秒钟的警告。首先,这里是一个公式,会告诉你,如果有若干字符串是在源字符串中随处可见:
=OR(NOT(ISERROR(FIND(<array of strings to look for>,<string to look in>))))
这需要输入数组公式为它工作。您可以通过使用Ctrl-Shift-Enter输入来完成此操作。要了解它是如何工作的,考虑什么样的Excel做在评价一个真实的例子:
=OR(NOT(ISERROR(FIND({"a","b","c"},"q b q"))))
“查找”内找到另一个字符串中的位置。当用数组调用第一个参数时,它将返回一个位置数组(或者如果未找到搜索字符串,则为#VALUE!)。您可以通过输入公式,然后使用F9键上表达追查其中的评价:
=OR(NOT(ISERROR({#VALUE!,3,#VALUE!})))
=OR(NOT({TRUE,FALSE,TRUE}))
=OR({FALSE,TRUE,FALSE})
=TRUE
所以,你的例子,说你有你的字符串,你想搜索在$ B $ 6:$ B $ 8您的工作字符串为$ D $ 2:$ D $ 3,而您的玩字符串为$ E $ 2:$ E $ 3。你可以把公式
=OR(NOT(ISERROR(FIND(D$2:D$3,$B6))))
在小区D6,其输入为数组公式,然后通过一系列D6拖动它:E8找到该字符串B的工作,或者他们游戏的话。然后,您可以使用这些结果来推动进一步的公式或条件格式。
然而,正如上面提到的,你会注意到,被搜索的字符串中的任意子将得到发现,所以
=OR(NOT(ISERROR(FIND({"a","b","c"},"bad"))))
将评估为TRUE。 (如果你的有趣列表中包含“id”,“davids”中的“id”将匹配)。
与Excel常见的情况一样,如果你正在使用有限的数据集进行某些操作,可能不关心这一点。但是它可以打败使用这种公式的尝试,作为一个普通“应用程序”的一部分,这个应用程序的用户不知道花哨的阵列技巧,或者确切知道'FIND'是什么。 (你可以通过在搜索词后面加一个空格来解决这个问题,但是如果你把它交给其他人的话,那就更加神秘了。)对于快速而脏的扫描来说,没关系。
字符串中的可能字数有限制吗?拆分它们并搜索很容易。但是,如果数量很多,则必须编写一个很长的公式来分隔每个字。 – paulmorriss 2011-03-22 16:56:59
嗯它不同,但会说最大是8 – NickG 2011-03-22 17:54:58
但是对于这种情况,让我们假设2 – NickG 2011-03-22 17:57:09