• ベストアンサー

エクセルで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

  • Excelで、A列にある文字がB列にあるかないか。

    Excelで、A列に入っている文字がB列にあるかないかを調べるにはどうすればいいでしょうか。 データ例 A B 算 漢 国 画 理 文 社 国 図 社 画 画 となっているときに Bの画、国、社、画を見つける方法です。 以前、Bが二文字だった場合に =IF(COUNT(1/MATCH("*"&$A$1:$A$6&"*",B1,0)),"あり","なし") という関数を教えていただいたのですが、 応用がうまくできずわからなかったので教えていただけないでしょうか。 $A$1:$A$6が必要な範囲を示すことはわかって、それは実情に合わせたのですが… 例は6個ですが、Aは41、Bは55あります。 また、上記とは別に Bの例の場合、 画が2回だ、など出てくる回数(3回以上出てくるようなケースもあり)も分かる方法があれば それも教えていただけると助かります。

  • エクセルについて A列に書いた数字がB列にも

    初心者です なんと言っていいかわかりませんが、A列に入れた数字がB列にも同じように出る方法は、ありませんか。たとえば、A1に5と入れたらB1にも5 A5に8と入れたらB5にも8となるようにしたく、またそれが、ずっと続くようにしたいのですが。        それと別にA1にあらかじめ40と数字入っているとしてB1に1を入れたときA1の数字はそのままで青といったようにしたく、いくら下にいっても続くようにしたいのですが無理でしょうか。よろしくお願いします  

  • エクセルで、A列に「20081020」が入っており、B列に「20081

    エクセルで、A列に「20081020」が入っており、B列に「20081030」、C列に「20090102」 と数値が入っているとします。 お分かりの通り、日付がスラッシュ無しで入っているのですが、A列に対してB,C列のような日付が何日後、もしくは何ヶ月、何日後のデータなのかわかるようにしたいです。 関数でありますでしょうか? 上記の例であればB列は10日後、C列は64日後と表示されるようにしたいです。 (数字だけでも構いません) 教えていただければ幸いです。 何卒よろしくお願いします。

  • エクセルの文字列の検索に関して

    また、エクセルに関しての質問です。 例えば  A B C D 1あ 1 2い 2 3う 3 4え 4 5お 5 6か 6 7き 7 8く 8 このような漢字で文字列が縦に入力されていて、  A B C D E 1あ 1   お 5 2い 2   う 3 3う 3 4え 4 5お 5 6か 6 7き 7 8く 8 このようにD列にある文字に対してA列にある文字で該当する文字を発見し横のBセルにある番号を取ってくるということがしたいです。 この場合だとD1は「お」なので、A列の上から見ていくとA5に「お」があるので、B5の数字「5」をEに入力といったような具合です。簡単なように見えますが、複数の文字列を横断的に検索することができません。 誰か詳しいお方お教え願います。

  • 文字列の途中の空白を除く、また、A列の桁数に応じてB列に異なる値を記入する方法

     初心者です。エクセル2000を使います。年は若くないです。  次のことで困っています。データが多いため、ひとつひとつを手で訂正できないのです。 1.セル内の文字列に含まれる空白(スペース)を除く方法   例えば、 東 いろは→→東いろは   空白を置換して除こうとしましたがうまくいきませんでした 2.A列の数字の桁数に応じて、B列に異なる数字を入れる方法。以前に教えていただいた方法+α が必要なのです。   A列の数字が 4桁 なら B列に 01を入力   A列の数字が 6桁 なら B列に 60を入力   A列の数字が 7桁 なら B列に 06を入力   A列の数字が 8桁 なら B列にA列の数字の上位2桁を入力 したいのです。前回次のような数式を教えてえていただきました。  =IF(LEN(A1)=4,"01",IF(LEN(A1)=6,"60",IF(LEN(A1)=7,"06",""))) 8桁のときの数式の組み立て(条件判断、表示の仕方)が分からず、困っています。教えて下さい。

  • A列の文字列からB列の文字列を

    A列の文字列からB列の文字列を 引く(マイナス)することはできないでしょうか? 例) A列 - B列 - C列 ABCD - CD - AB ABCD - BCD - A ABCD - GH - ABCD という風にC列に関数で結果を表示したいのです。 方法はないでしょうか? よろしくお願いします。

  • エクセルに関しての質問です。A列とB列に任意の文字列があり

    A列にもB列にもその文字がある場合、C列にその文字以外の文字を表示させ、B列にしかない文字をD列に表示させる。 (例) A B C D 1 1 3 5 2 2 3 4 4 5 というものは出来ますか?関数でも、マクロでもいいので、とにかく、その文字を摘出したいのです。どなたか違う方法でも良いので、教えて頂きたいです。

  • 以下のようなEXCELのA列をカウントしたいです。

    以下のようなデータ行が10000件くらいあります。 A列には1から10,000までの数字があります。同じ数字が1個か2個あります。3個以上はないです B列にはaかbどちらかが入っています。(両方ある場合もあります) この時、A列で異なる数字が何件あるかカウントするのはいい方法はないでしょうか? 以下の例ですと、データは10件ですがA列に入っている数は7種類です。 この「7種類」という数字を弾きたいのですが、いい方法はないでしょうか? (実際のデータは1から順列でなく、PC管理番号のような英数字が入っています) A列 B列 1 a 1 b 2 a 3 a 3 b 4 a 5 b 6 b 7 a 7 b

  • エクセルでダブっている文字列を見つける

    いつもお世話になっています。 早速ですが、エクセルでaというファイルとbというファイル2つのデータがありその中にはそれぞれ13字の文字列(数字)が100以上あるのですが、ダブっているものを見つけるにはどうすれば簡単にできるでしょうか? よろしくお願いします

  • エクセルで文字列の計算をしたいのですが。

    エクセルで文字列の計算をしたいのですが。 セルの表示は文字列ですが、実際のデータは数字(だけ)が入っています。 これを計算する事は可能でしょうか?。 例えば A1セル:00001 と入っていて B1セルには、A1セル+1=00002 とさせたいのです。 よろしくお願いいたします。

専門家に質問してみよう