プロが教える店舗&オフィスのセキュリティ対策術

エクセルでキーワード群の文字列が含まれていたら、キーワードを返すという関数式を知りたいです。

▼A列(どこにキーワードが入ってるかは分からない)
●●●●●赤●●
●●●白●●●●
●●●●黒●●●
●●●●●●●●

▼B列:キーワード(1文字とは限らない)




▼C列:関数で得られる結果



(空白)

▼結果のイメージ
A列     B列  C列
●●●●●赤●●  赤  赤
●●●白●●●●  白  白
●●●●黒●●●  黒  黒
●●●●●●●●  (何もなければ空白)

こちらとほぼ類似しているのですが内容が理解できず。。アドバイスいただけると幸いです。
http://oshiete.goo.ne.jp/qa/5980872.html

質問者からの補足コメント

  • d-q-t-pさんの指摘の通り例が不適切だと気づきました。B列のキーワード群に規則性はありません。キーワード群の中から完全一致する文字列がA列に含まれた場合にキーワードを返すという内容になります。

    ▼B列:キーワード群


    黄色

      補足日時:2016/02/16 12:44
  • 説明が分かりづらくお手数をお掛けして大変申しわけないです。
    キーワード群をB列にしたのも誤解になりそうなので、整理させてください。
    目的はA列にキーワード群の何が入っているか確認したいです。

    ▼A列:検査対象
    ●●●●●赤●●
    ●●●白●●●●
    ●●●●黒●●●
    ●●●●●●●●
    ●黄色●●●●●●


    ▼D列:キーワード群


    黄色


    グリーン
    オレンジ

    ▼B列に関数を入れた場合に得られる結果

    A列        B列
    ●●●●●赤●●    赤
    ●●●白●●●●    白
    ●●●●黒●●●    黒
    ●●●●●●●●
    ●黄色●●●●●●   黄色

    ▼画像を添付します

    「キーワードの文字が含まれていたら、そのキ」の補足画像2
      補足日時:2016/02/16 16:32

A 回答 (4件)

こんにちは!



↓の画像で説明します。
C列のキーワードの範囲指定する場合は空白セルを範囲指定しないようにします。
そのために今後キーワードが増えても対応できるように「*」アスタリクスで埋めています。

B2セルに
=IF(OR(ISNUMBER(FIND(C$1:C$10,A2))),INDEX(C$1:C$10,SUMPRODUCT(ISNUMBER(FIND(C$1:C$10,A2))*ROW(C$1:C$10))),"")
配列数式になりますので、Ctrl+Shift+Enterで確定! → フィルハンドルで下へコピー!
これで画像のような感じになります。

※ 条件として、A列文字列にキーワードは複数含まれない!というのが大前提です。
仮に「青白い光」のようにキーワードが複数ある場合は
とんでもない結果になります。m(_ _)m
「キーワードの文字が含まれていたら、そのキ」の回答画像4
    • good
    • 0
この回答へのお礼

まさにこちらでした!
おかげ様で解決しました。
ありがとうございます。

お礼日時:2016/02/16 17:28

どのような結果が欲しいのでしょう??


C1セルに
=IF(ISNUMBER(MATCH("*"&B1&"*",A:A,0)),B1,"")
下へオートフィル
「キーワードの文字が含まれていたら、そのキ」の回答画像3
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。質問が分かりづらく大変失礼しました。

お礼日時:2016/02/16 17:31

キーワード郡と 事例の並びを一緒にしてるせいで 意味が伝わり


にくいです。

=IFERROR(LOOKUP(1,-FIND(B$1:B$3,A1),B$1:B$3),"")
    • good
    • 1
この回答へのお礼

おっしゃる通り、質問が悪く大変失礼しました。

お礼日時:2016/02/16 17:30

C1セルに以下の式を入れて、以降はフィルハンドルで埋めてください


=IF(ISERROR(FIND($B1,$A1))=FALSE,$B1,"")

>▼B列:キーワード(1文字とは限らない)
この意図が完全には伝わらないので、思うように動作しないかもしれません。

例えば
(A1セル)●●●●●赤●●、(B1セル)赤、青
→これは結果はFalseになります。
(A1セル)●●●●●赤色●、(B1セル)赤色
→これは結果はTrueになります。

つまり、B列と全く同一の文字列がA列に含まれていないと結果はFalseになります。
    • good
    • 0
この回答へのお礼

この度はありがとうございました。質問の仕方が悪く大変失礼しました。

お礼日時:2016/02/16 17:30

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