• ベストアンサー

エクセルでA列にある文字をB列で探す

Excelで、A列に入っている文字(一文字)がB列のどこかに含まれているか、そうでないかを調べるにはどうすればいいでしょうか。 データ例 A B 算 漢字 国 字画 理 文字 社 国字 図 数字 画 画数 となっているときに Bの字画、国字、画数、を見つける方法です。 データが少なければA列を一つ一つ検索していけばいいのはわかるのですが、まとめてできる方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.2

A列のデータの文字が含まれているかどうかをC列に表示するならB1セル以下に以下のような配列数式を入力します。 =IF(COUNT(1/MATCH("*"&$A$1:$A$6&"*",B1,0)),"あり","") 配列数式ですので入力後Ctrl+Shift+Enterで確定してください。 このような該当データの横に「あり」を表示するのではなく、たとえば該当データの一覧を作成したいような場合は、さらに複雑な配列数式を作成する必要があります。

nekomyumyu
質問者

補足

ありがとうございます! この数式をB1セル以下に入力するという意味はわからなくて C列に入れましたがそれでうまくいきました!

その他の回答 (5)

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.6

ごめんなさい。式を試験せずに提示してしまいました。 B列が5文字まででしたらC1セルに次の式を入力して下方にオートフィルドラッグします。 =IF(COUNTIF(A:A,MID(B1,LEN(B1)-1,1))>0,B1,"")&IF(COUNTIF(A:A,MID(B1,LEN(B1)-2,1))>0,B1,"")&IF(COUNTIF(A:A,MID(B1,LEN(B1)-3,1))>0,B1,"")&IF(COUNTIF(A:A,MID(B1,LEN(B1)-4,1))>0,B1,"")&IF(COUNTIF(A:A,MID(B1,LEN(B1)-5,1))>0,B1,"")

nekomyumyu
質問者

お礼

回答番号:No.3~6のみなさん ご回答ありがとうございました。 今回は下記で済ませてしまいましたが またこの別解答を利用させていただくこともあると思います。 どうもありがとうございました。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.5

B列に5文字までがあるとしたら式を単純に付加すればよいでしょう。 =IF(COUNTIF(A:A,MID(B1,1,1))>0,B1,"")&IF(COUNTIF(A:A,MID(B1,2,1))>0,B1,"")&IF(COUNTIF(A:A,MID(B1,3,1))>0,B1,"")&IF(COUNTIF(A:A,MID(B1,4,1))>0,B1,"")&IF(COUNTIF(A:A,MID(B1,5,1))>0,B1,"")

nekomyumyu
質問者

お礼

回答番号:No.3~6のみなさん ご回答ありがとうございました。 今回は下記で済ませてしまいましたが またこの別解答を利用させていただくこともあると思います。 どうもありがとうございました。

noname#204879
noname#204879
回答No.4

別解 C1: =IF(SUMPRODUCT(LEN(B1)-LEN(SUBSTITUTE(B1,A$1:A$11,""))),"あり","")

nekomyumyu
質問者

お礼

回答番号:No.3~6のみなさん ご回答ありがとうございました。 今回は下記で済ませてしまいましたが またこの別解答を利用させていただくこともあると思います。 どうもありがとうございました。

noname#204879
noname#204879
回答No.3

別解 C1: {=IF(SUM(LEN(B1)-LEN(SUBSTITUTE(B1,A$1:A$11,""))),"あり","")}   (配列数式)

nekomyumyu
質問者

お礼

回答番号:No.3~6のみなさん ご回答ありがとうございました。 今回は下記で済ませてしまいましたが またこの別解答を利用させていただくこともあると思います。 どうもありがとうございました。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.1

C1セルに次の式を入力して下方にオートフィルドラッグします。 =IF(COUNTIF(A:A,MID(B1,1,1))>0,B1,"")&IF(COUNTIF(A:A,MID(B1,2,1))>0,B1,"")

nekomyumyu
質問者

お礼

ありがとうございます! B列が二文字以上の場合は有効なようです。 一文字の場合、A列に該当文字がなくても B列の文字がC列に表示されてしまいました。 私が一文字の例を入れなかったので、せっかくお答えいただいたのにすみません。 でも2番目の回答の方とのあわせ技で処理がうまくできました。 ありがとうございます。

nekomyumyu
質問者

補足

すみません、データ例が規則的すぎました。 上記の方法ではぜんぜん違う結果になってしまいました。 実際のデータは A B 算 漢字 国 字画 理 科学 社 国字 図 お国柄 画 花柄 括 全角 喝 理にかなう 渇 皮算用 褐 数字 轄 黄色 のように、Bの文字数はさまざまで、ひらがななどもあるのです。 それで、字画、国字、お国柄、理にかなう、皮算用などを見つけ出したいです。 そういう場合は、関数では難しいのでしょうか。

関連するQ&A