セルから単語のリストを検索したい。私はこれが配列式として機能すると思った:
{=FIND(<list of words I want to search for>,<cell I want to search>)}
ただし、検索しているセルにある単語が、検索している単語のリストの最初の行にある場合にのみ一致します。リスト全体を調べる式を書く方法はありますか?そして、TRUE/FALSEを返さなかった方がいいと思います。単語のリストをセルで検索し、リスト内の単語がセルに存在するかどうかに基づいてTRUE/FALSEを返す方法を知っています。どのWordが見つかったか、またはその位置を実際に知りたいです。
これは一致するWordを返すか、一致するものが見つからない場合はエラーを返します。この例では、次を使用しました。
検索する単語のリスト:_G1:G7
_
検索するセル:_A1
_
_=INDEX(G1:G7,MAX(IF(ISERROR(FIND(G1:G7,A1)),-1,1)*(ROW(G1:G7)-ROW(G1)+1)))
_
を押して配列数式として入力します Ctrl+Shift+Enter。
この式は、最初に単語のリストを調べて一致を見つけ、次にリスト内の単語の位置を、見つかった場合は正の値として、見つからない場合は負の値として記録します。この配列の最大値は、リスト内で見つかったWordの位置です。 Wordが見つからない場合、負の値がINDEX()
関数に渡され、エラーがスローされます。
一致するWordの行番号を返すには、次を使用できます。
_=MAX(IF(ISERROR(FIND(G1:G7,A1)),-1,1)*ROW(G1:G7))
_
これも押して配列式として入力する必要があります Ctrl+Shift+Enter。一致が見つからない場合は_-1
_を返します。
TRUE/FALSE回答が完全に受け入れられる私のような人々にこの回答を追加する
OR(IF(ISNUMBER(SEARCH($G$1:$G$7,A1)),TRUE,FALSE))
または大文字と小文字を区別
OR(IF(ISNUMBER(FIND($G$1:$G$7,A1)),TRUE,FALSE))
検索語の範囲はG1:G7
CTRL + SHIFT + ENTERを忘れずに押してください
{=FIND("cell I want to search","list of words I want to search for")}
の単語のいずれかに一致する場合に検索が必要です{=SUM(FIND($A$1:$A$100&"|";A3))}
これにより、スプレッドシートが「cellvlaue |」 againts "pattern1 |"、 "pattern2 |" pattern1 = "newly added"、pattern2 = "added"などの競合を整理します( "added"に一致するすべてのセルの合計は高すぎます。エラー)