A列に文字があるとして、A1の先頭ならMID(A1,1,1)を2番目ならMID(A1,2,1)で1文字(この質問は1文字だけを問題にするとします)を取り出せます。先頭の1文字だけを問題にして、1文字しか入っていないとします。
その文字を優先順位のコードを振るには、Find(A1,"文字列")として、その文字列に並べる文字の順を、調整します。
"$|#A+ "なら$は1、|は2、#は3、Aは4、+は5、スペースは6というコードを、=FIND(A1,"$|#A+ ")でB列に各対応コードを返えさせられます。(""は便宜上、スペースに置換しておかないと都合が悪い。)
そしてB列のMINを取ると一番優先度の高いコードが得られます。=CHOOSE(”コード","$|#A+ ")で復号できます。
コードのところかMIN(・・)が入ります。
(データ)質問と違う例ですが、A列に
a
d
f
g
j
(関数式)
B1セルに=FIND(A1,"acefgbdj")
B2以下に複写
a 1
d 7
f 4
g 5
j 8
となる。
一番優先度の高い文字は
=CHOOSE(MIN(B1:B5),"a","c","e","f","g","b","d","j")
でaになる。
一番優先度の高いのはaと言うのは、自明(自分で決めている)のですが。
常例でaの行を削除するとfが先頭優先度となり、fが表示されます。
お礼
ありがとうございます。 ためさせていただきましたが おそらくFIND(A1:A10,"$|#A+")が正しく機能できていない様です。 配列数式で上記の処理を行うと複数入力時はどの様な 値が返ってくるのでしょうか?
補足
上の件、勘違いで問題ありませんでした。 FINDだけを配列数式にしてもだめですよね。 ありがとうございました。 値無しと思っていたところが実は空白だったためおかしかった様です。ISBLANKに変更して対応しました。 お世話になりました。