8/27/2018

Excel。アルファベット評価から最高ランクがどのアルファベットなのかは、MIN関数だけでは対応できません【RANK】

Excel。アルファベット評価から最高ランクがどのアルファベットなのかは、MIN関数だけでは対応できません

<CHAR+MIN+CODE関数>

次のような評価表があります。

1回目から5回目までで、それぞれA~Eランクで評価したものなのですが、
1回目から5回目の中で、
一番成績のいいアルファベット評価をH列に求めたいわけです。

例えば、1件目は「C/D/C/A/A」なので、
最高ランクは”A”と求められるといいわけです。

当然、データ量が少なければ、
目視によるパワープレイで処理してもいいのですが、
データが大量になると、大変になりますので、
工夫が必要になるわけです。

そこで、イメージとして、A~Eなので、昇順でならぶから、
最小値を求めるMIN関数で簡単に算出できる感じがしますよね。

では、実際どうなのか、確認してみましょう。

【MIN関数では算出できない!】

H2をクリックして、
=MIN(C2:G2)
という数式を設定しましょう。

0(ゼロ)と算出されてしまいました。

なんで、”A”と算出してくれなかったのか?

それは、MIN関数は、
『数値』の最小値を求めることができる関数だからです。

アルファベットは、数値ではありませんから、
算出してくれなかったわけです。

では、どのようにしたらいいのでしょうか?

【CHAR+MIN+CODE関数と配列関数で一発算出】

一発で算出する方法を、まずはご紹介します。

配列関数を使いますが、H2に次の数式を、手入力します。

配列関数なので、手入力の方があとあと楽です。

=CHAR(MIN(CODE(C2:G2)))
と入力したら、配列関数にしますので、
ctrl + shift + Enterキーを押します。

数式に、”{ }”が前後につけば、配列関数になりました。

{=CHAR(MIN(CODE(C2:G2)))}

オートフィルを使って数式をコピーしましょう。

これで、最高ランクを求めることができましたが、
配列関数はちょっと、ややこしいので、
改めて、順を追って説明していきます。

MIN関数を使いたいけど、文字だから使えないわけです。

そこで、文字には、それぞれ文字コードという番号が振られています。

文字を文字コードに変換することができる関数が、CODE関数です。

では、この表の下に、文字コードに変換した表を作ってみましょう。

C11には、
=CODE(C2)
という数式が設定されていて、
オートフィルを使って数式をコピーしました。

すると、Aは65で、
Eは69という文字コードが振られていることがわかりました。

これで、数値になりましたので、MIN関数が使えるわけです。

H11にMIN関数を使って算出してみましょう。

H11の数式は、
=MIN(C11:G11)

あとは、この文字コードをアルファベット。

すなわち文字に戻してあげればいいわけですね。

文字コードを文字に変換する関数は、CHAR関数ですね。
それでは、H11の数式をCHAR関数でネストしてみましょう。

=CHAR(MIN(C11:G11))

アルファベットに戻りましたね。
先程の配列関数は、この手順を一発で処理したわけです。

このように、アルファベットの評価を並び替えるのは簡単ですが、
今回のようなケースでは一筋縄では処理できませんので、
様々な関数を知っているといいのかもしれませんね。