5/01/2016

Excel。ABC。アルファベットをランダムで重複しないで設定する方法


Excel。アルファベットをランダムで重複しないで設定する方法

<RAND+RANK.EQ+CHAR関数>


ちょっと前に、数値をランダムで、しかも重複しないで設定する方法をご紹介したところ、

「これ、数値じゃなくて、アルファベットのA~Zで振ることってできないですかね?」

というリクエストをいただきまして。なるほど、ちょっと考えてみますということで、
今回は、前回ご紹介した方法にプラスアルファして、
アルファベットをランダムで重複しないで設定する方法をご紹介しちゃいます。

途中までは、前回ご紹介したものと同じになるのですが…

まずは、下記のように作りたいわけですね。

では、まずは準備から行っていきます。下記のような算出する表を作っていきます。

E列は、スタッフ名
F列には、ランダムで算出した整数値を算出させます。ここは、RAND関数の登場ですね。
F3には、=RAND ()という数式が設定されています。

前回もご紹介しておりますが、RANDBETWEEN関数では、整数値でしかも、
重複をしてしまいます。そこで、小数点でのランダム数値を算出するRAND関数を使えば、
まだ重複する率は緩和されるので、このF列にはRAND関数を使ってとりあえず、
ランダムの数値を算出させたわけですね。

続いてG列ですが、F列で算出された数値の順位を算出するために、
まずは、RANK.EQ関数を使って順位を算出させます。

数値には、F3。
参照には、$F$3:$F$12。絶対参照を忘れてはいけませんね。
オートフィルで数式をコピーすると絶対参照をしないと、参照範囲がずれてしましますので、
忘れずに設定します。

順序は、0。

これで、OKボタンをクリックします。

ここまでの数式は、

=RANK.EQ(F3,$F$3:$F$12,0)


これで完成ではありません。ここからが今回のポイント。
アルファベットにするために加工をする必要があります。

文字には、それぞれ、文字コードが振られていますので、
アルファベットのAは、65という文字コードをもっています。

そこで、ここで算出された順位に【+64】すれば、
65という数値を作り出すことができますので、数式を次のように加工します。

=RANK.EQ(F3,$F$3:$F$12,0)+64


その結果が、G列のプラス64の列の数値なのです。

そして、その数値をアルファベットに変更させますので、
H列には、CHAR関数を使っていきます。
H3には、

=CHAR(G3)

という数式を設定してあげます。

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

これで、割り当ての列が算出することが出来ましたね。

このようにしてあげれば、
今回のリクエストのアルファベットで重複しないで設定することが出来ますので、
何か機会がありましたら、使ってみてはどうでしょうかね?

ちなみに、aは97なので、+96しれあげれば、
小文字のアルファベットで算出することもできますよ。