- ベストアンサー
Excelの文字列検索関数について
Excel2007で、あるセルに入っている英単語が、別のセル範囲(複数セル)に入っている英文の中にあるかどうか、を調べたいのですが、関数を使って実現できるでしょうか? たとえば、 A1に"This is a pen." A2に"That is a desk" という英文があり、 B1に"bat", B2に"pen"を入れたとします。 この場合、A1~A2に"bat"は存在しないのでC1には"FALSE"が、 A1~A2に"pen"は存在するのでC2には"TRUE"が自動的に入るようにしたいのです。 (TRUE - FALSE でなくても、数字などでもかまいません) FIND関数は単一セルの中の文字列しか検索できないし、 MATCH関数はセル内容が同一でないと結果が出ないのでそのままでは使えません。 何かいい方法はないでしょうか。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは! 一例です。 ↓の画像のC1セルに数式を入れて下へオートフィルでコピーしていますが、 配列数式になってしまいますので、 この画面からコピー&ペーストしただけではエラーになると思います。 C1セルに貼り付け後、F2キーを押すか、数式バー内で一度クリックします。 編集可能になりますのでShift+Ctrl+Enterキーで確定してください。 数式の前後に{ }マークが入り配列数式になります。 C1セルは =IF(A1="","",IF(OR(ISNUMBER(FIND($B$1:$B$2,A1))),TRUE,FALSE)) としてShift+Ctrl+Enterで確定です。 以上、長々と書きましたが参考になれば幸いです。 他に良い方法があれば読み流してくださいね。m(__)m
その他の回答 (5)
- tom04
- ベストアンサー率49% (2537/5117)
No.5です! 投稿したあとで勘違いに気づきました。 A列の中にB1・B2に入力した文字列があれば B列の隣のセルにTRUEかFALSEを表示させるわけですね! 前回の数式は逆(A列の各セルにB1・B2セルの文字列があればC列に表示する) になっていました。 C1セルの数式を =IF(B1="","",IF(OR(ISNUMBER(FIND(B1,$A$1:$A$100))),TRUE,FALSE)) (前回同様配列数式になってしまいますので、Shift+Ctrl+Enterで確定です。) として、オートフィルで下へずぃ~~~!っとコピーしてみてください。 これでB列に検索文字列が増えても対応できると思います。 尚、数式は100行まで対応できるようにしていますが、 データ量によってアレンジしてみてください。 どうも長々と、何度も失礼しました。m(__)m
- MackyNo1
- ベストアンサー率53% (1521/2850)
例示のように、いくつかのセル範囲(A1:A2)に「英文」が入力されていて、FIND関数でそれらのセルに検索文字列(B1)が含まれているかどうかを調べたいなら、以下のような関数が簡単です。 =ISNUMBER(FIND(B1,PHONETIC(A1:A2)))
- ASIMOV
- ベストアンサー率41% (982/2351)
=NOT(ISERROR(FIND(B2,A2,1))) で、どうでしょう >FIND関数は単一セルの中の文字列しか検索できないし これは、勘違いかと...
- hige_082
- ベストアンサー率50% (379/747)
C1へ TRUE - FALSE で表示 =IF(A1="","",IF(COUNTIF($A$1:$A$10,"*"&B1&"*"),TRUE,FALSE)) 無ければ"0"、あるときは含まれるセルの数を表示 =IF(A1="","",(COUNTIF($A$1:$A$10,"*"&B1&"*"))) 以上、参考まで
- wisemac21
- ベストアンサー率39% (171/429)
こんなのはどうですか? C1 =IF(ISERROR(SEARCH($B$1:$B$2,A1)),FALSE,TRUE) 下へコピー
お礼
皆様、 早速のご回答をありがとうございました。 たくさんのヒントを元に、やりたいことができるようになりました。 まとめRESで失礼ですが、皆さんにお礼申し上げます。