プロが教えるわが家の防犯対策術!

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関数はセル内容が同一でないと結果が出ないのでそのままでは使えません。

何かいい方法はないでしょうか。

A 回答 (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
「Excelの文字列検索関数について」の回答画像5
    • good
    • 0

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
    • good
    • 0
この回答へのお礼

皆様、
早速のご回答をありがとうございました。
たくさんのヒントを元に、やりたいことができるようになりました。

まとめRESで失礼ですが、皆さんにお礼申し上げます。

お礼日時:2010/01/07 00:30

例示のように、いくつかのセル範囲(A1:A2)に「英文」が入力されていて、FIND関数でそれらのセルに検索文字列(B1)が含まれているかどうかを調べたいなら、以下のような関数が簡単です。



=ISNUMBER(FIND(B1,PHONETIC(A1:A2)))
    • good
    • 0

=NOT(ISERROR(FIND(B2,A2,1)))



で、どうでしょう

>FIND関数は単一セルの中の文字列しか検索できないし

これは、勘違いかと...
    • good
    • 0

C1へ


TRUE - FALSE で表示
=IF(A1="","",IF(COUNTIF($A$1:$A$10,"*"&B1&"*"),TRUE,FALSE))

無ければ"0"、あるときは含まれるセルの数を表示
=IF(A1="","",(COUNTIF($A$1:$A$10,"*"&B1&"*")))

以上、参考まで
    • good
    • 0

こんなのはどうですか?


C1 =IF(ISERROR(SEARCH($B$1:$B$2,A1)),FALSE,TRUE)
下へコピー
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!