セルA1には下記のいずれかの文字が入るものとします。

〇〇〇大学大学院
〇〇〇大学
〇〇〇短期大学
〇〇〇高等専門学校
〇〇〇高等学校
〇〇〇中学校
〇〇〇小学校
〇〇〇幼稚園
〇〇〇保育園

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

このQ&Aに関連する最新のQ&A

A 回答 (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で入力確定
(配列数式で成功すれば数式が { } で括られます)

必要行複写
    • good
    • 0
この回答へのお礼

ありがとうございます!
まさにこれです。
実際に入力される文字列にはこのあとにも何か入る可能性があるので、以下のようにしてみました。

=IF(A3="","",MIN(IF(ISNA(MATCH("*"&$H$1:$H$9&"*",A3,0)),10,$I$1:$I$9)))

配列数式って凄いですね!

お礼日時:2003/09/13 13:58

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
    • good
    • 0
この回答へのお礼

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

お礼日時:2003/09/13 13:54

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


人気Q&Aランキング

おすすめ情報