只需要使用公式就可以很容易地做到這一點,只要您不太在意可能不恰當地查找單詞的部分內容。雖然忽略了一秒鐘的警告。首先,這裏是一個公式,會告訴你,如果有若干字符串是在源字符串中隨處可見:
=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