• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルで複数文字を検索する方法を教えてください。)

エクセルで複数文字を検索する方法を教えてください

このQ&Aのポイント
  • エクセルで複数文字を効率的に検索する方法を紹介します。具体的には、エクセルシートが2つあり、sheet1には名前が入力され、sheet2には漢字600個が縦に並べられています。名前に対して関数を入れ、sheet2に該当する漢字があれば「当たり」と表示し、無ければ空欄にする方法を教えます。
  • エクセルで複数文字を検索する方法をご紹介します。具体的には、名前が入力されたシート1と、漢字600個が縦に並べられたシート2があります。名前に対して関数を使い、シート2に該当する漢字がある場合は「当たり」と表示し、該当しない場合は空欄にします。
  • EXCEL2003でのエクセル検索方法を紹介します。名前が入力されたシート1と漢字600個が並べられたシート2があります。関数を使って、シート2に該当する漢字が存在すれば「当たり」と表示し、存在しない場合は空欄にします。効率的な検索方法をご紹介します。

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

  • ベストアンサー
  • tsubuyuki
  • ベストアンサー率45% (699/1545)
回答No.2

わかりづらいかもしれませんが・・ 添付した図では(ハードコピーが面倒だったので)1シートにまとめちゃってますが、 A列に名前が、D列に探す文字が、B列に結果が羅列されているものとして、   B1セル:=IF(SUMPRODUCT(COUNTIF(A1,"*"&$D$1:$D$5&"*"))>0,"あたり","") で、以下必要分コピー(フィル)。 としてやると、「探す文字」が1文字以上含まれているものに関して「あたり」を表示します。 ただし、探す文字の範囲(この場合、$D$1:$D$5の範囲)に「空白が無いこと」が条件です。 600くらいだとほぼ大丈夫と思いますが、件数が多いと少々レスポンスが鈍るかもしれません。

sasadon
質問者

お礼

ありがとうございました! シンプルで初心者には応用が利き易い関数でした。 =IF(SUMPRODUCT(COUNTIF(A1,"*"&該当!A$1:A$600&"*"))>0,"外字","") で対応できました。 感謝いたします。

その他の回答 (3)

回答No.4

最初はkeithinさんと同じ方法を考えたのですが、空白処理までできなくなってしまった。 (名前の定義で対応可能ではあるけれど) =IF(OR(ISNUMBER(MATCH(MID(A1,ROW($A$1:INDEX(A:A,LEN(A1))),1),該当!A:A,0))),"当たり","") [Ctrl]+[Shft] +[Enter] で確定、配列数式。{ }で挟まれる で、逆に考えてみた。ただし、「該当」シートのデータ範囲(A1:A5)に空白セルがないものとして =IF(A1="","",IF(OR(ISNUMBER(FIND(該当!$A$1:$A$5,A1))),"当たり","")) [Ctrl]+[Shft] +[Enter] で確定、配列数式。{ }で挟まれる

sasadon
質問者

お礼

ありがとうございました。 関数初心者のため、関数の中身がよく理解できませんでした。。

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

力技になりますが計算には負担がかからない方法です。 次の式をB1セルに入力して下方にドラッグコピーします。 =IF(A1="","",IF(IF(LEN(A1)>0,COUNTIF(該当!$A:$A,MID(A1,1,1)),0)+IF(LEN(A1)>1,COUNTIF(該当!$A:$A,MID(A1,2,1)),0)+IF(LEN(A1)>2,COUNTIF(該当!$A:$A,MID(A1,3,1)),0)+IF(LEN(A1)>3,COUNTIF(該当!$A:$A,MID(A1,4,1)),0)+IF(LEN(A1)>4,COUNTIF(該当!$A:$A,MID(A1,5,1)),0)+IF(LEN(A1)>5,COUNTIF(該当!$A:$A,MID(A1,6,1)),0)+IF(LEN(A1)>6,COUNTIF(該当!$A:$A,MID(A1,7,1)),0)+IF(LEN(A1)>7,COUNTIF(該当!$A:$A,MID(A1,8,1)),0)>0,"当たり","")) 名前が8文字まで対応できます。もっと増やすこともできますね。

sasadon
質問者

お礼

ありがとうございました。 関数初心者のため、関数の中身がよく理解できませんでした。。

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

とりあえず手っ取り早いやり方で B1に =IF(OR(ISNUMBER(MATCH(MID(A1,ROW($A$1:$A$9),1),該当!A:A,0))),"あたり","") と記入、必ずコントロールキーとシフトキーを押しながらEnterで入力、以下コピー。

sasadon
質問者

お礼

ありがとうございました。 関数初心者のため、関数の中身がよく理解できませんでした。。