• ベストアンサー

セル内の特定文字列の検索方法について

セルA1には下記のいずれかの文字が入るものとします。 〇〇〇大学大学院 〇〇〇大学 〇〇〇短期大学 〇〇〇高等専門学校 〇〇〇高等学校 〇〇〇中学校 〇〇〇小学校 〇〇〇幼稚園 〇〇〇保育園 〇〇〇は任意の文字で何が入るか、何文字入るかわかりません。 A1セルに入った文字列を調べ、たとえば大学院なら1、大学なら2、短期大学なら3、・・・・保育園なら9、該当しない場合10という具合に表示させる関数はないでしょうか? よろしくお願いします。

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

  • ベストアンサー
  • comv
  • ベストアンサー率52% (322/612)
回答No.2

こんにちは A1に入力 として 適当な箇(もしくは別シートに)データ表を作成     H    I 1 大学大学院  1 2 大学     2 3 短期大学   3 4 高等専門学校 4 5 高等学校   5 6 中学校    6 7 小学校    7 8 幼稚園    8 9 保育園    9 セルB1に =IF(A1="","",MIN(IF(ISNA(MATCH("*"&$H$1:$H$9,A1,0)),10,$I$1:$I$9))) と入力後 Shift+ctrlを押したままEnterで入力確定 (配列数式で成功すれば数式が { } で括られます) 必要行複写

shishishishi
質問者

お礼

ありがとうございます! まさにこれです。 実際に入力される文字列にはこのあとにも何か入る可能性があるので、以下のようにしてみました。 =IF(A3="","",MIN(IF(ISNA(MATCH("*"&$H$1:$H$9&"*",A3,0)),10,$I$1:$I$9))) 配列数式って凄いですね!

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.1

Instr関数を使った回答例。 下記をVBEの標準モジュールに貼りつけ シートのコードをセットしたいセルに =gakuenc(A1)のようにいれます。 A2以下にA1の式を複写してください。 同じ文字列(語句)が含まれたものが、探したい語句集団の中にあります。 短期大学と大学などです。この場合文字数の多い方(短期大学)を前に持ってきてください。その点お望みのコードと一部違っています。大学を探し、見つかれば短期を探すように場合分けして、木目細かくやればお望みのようにすることは可能と思いますが、長くなるので、このままにします。 Function gakuenc(a) t = Array("", "大学大学院", "短期大学", "大学", _ "高等専門学校", "高等学校", "中学校", "小学校", _ "幼稚園", "保育園") For i = 1 To UBound(t) p = InStr(a, t(i)) If p > 0 Then gakuenc = i Exit Function End If Next i gakuenc = "なし" End Function

shishishishi
質問者

お礼

ありがとうございます!! 高度すぎて仕組みはほとんどわかりませんでしたが、望みのものに近いものが得られました。 エクセルは奥がふかいですねえ!

関連するQ&A