これは、単語の一部を不適切に検索する可能性をあまり気にしない限り、数式だけで行うのは非常に簡単です。ただし、その警告を少し無視してください。最初に、いくつかの文字列のいずれかがソース文字列内のどこかにあるかどうかを示す数式を次に示します。
=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"))))
'FIND' は、別の文字列内の 1 つの文字列の位置を検索します。最初の引数に配列を指定して呼び出すと、位置の配列 (検索文字列が見つからない場合は #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 と評価されます。(そして、fun リストに「id」が含まれている場合、「davids」の「id」が一致します。)
Excel でよくあることですが、限られたデータ セットで理解していることを行っている場合、これは気にしないかもしれません。しかし、この種の式を一般的な「アプリケーション」の一部として使用しようとする試みは、複雑な配列のトリックや正確に 'FIND' が何をするかを知らないユーザーがいる場合には失敗する可能性があります。(検索語の後にスペースを入れるなどして、これを回避することもできますが、他の人に渡すと壊れるのを待っている神秘的なブードゥー教です。)ただし、すばやく汚いスキャンを行うには問題ありません。 .