Excel。くじ引き番号。ランダムの数値を重複させない簡単な方法
<RAND関数&RANK.EQ関数>
先日知り合いの方の講師の先生から、席替えをするんだけど、
番号を重複しないで振る方法って何かないかなぁ~とのこと。
なんでも、RANDBETWEEN関数を使うと、重複しちゃって、
しかも、削除をしたり、文字を追加したりなどすると、コロコロ変わっちゃって、
数値が固定されないので、困っているというもの。
確かに、RANDBETWEEN関数は、重複を防ぐことが出来ないんですよね。
便利そうなんだけど、ちょっと不便。
ランダム数が少ない場合は、「自力で」でもいいのですが、増えてくるとやっぱり、
面倒くさくなるし、重複を見逃しちゃうかもしれないし。
ということで、今回は、重複しないランダム数値の設定方法をご紹介していきます。
まず、下記の表があります。
こういう表を作りたい訳ですね。
では、RANDBETWEEN関数だとどうなるのかを確認してみましょう。
C3をクリックして、RANDBETWEEN関数ダイアログボックスを表示しましょう。
最小値は1
最大値は10
と入力してOKボタンをクリックしましょう。オートフィルで数式をC12までコピーしましょう。
すると、ランダムで1~10までの数値が振られてはみたものの…やっぱり重複している。
これでは、自力で何とかしないといけないわけです。
けど、面倒なので何かいいアイディアはないですか?という訳ですね。
そこで、重複するかもしれないけれど、重複しないような関数があるのです、
それは、RAND関数。
この関数は、小数点第7位までをランダムで表示する関数なのですが、
小数点第7位までならば、ほぼ重複することはないので、今回はこのRAND関数と、
順位を出す、RANK.EQ関数のコンビネーション技で、
重複しないランダムの数値を算出する方法をやってみましょう。
D2にRANDと入力して、
D3に、
= RAND()
と入力して、オートフィルでD12まで数式をコピーします。まず、RAND関数を作って、ランダムな数値を算出させます。
そして、この数値の順位を算出すれば、1~10までの重複しない数値を算出できるという訳です。
なお、D列は再計算され続けますので、気にせず、
C3にRANK.EQ関数を作っていきますので、
RANK.EQ関数ダイアログボックスを表示しましょう。
数値はD3
参照は、$D$3:$D$12
順序は、昇順でも降順でも構わないので、今回は0にしておきます。
あとは、OKボタンをクリックしましょう。オートフィルを使って数式をC12までコピーします。
これで、重複しないランダムな数値を作ることができました。
が、D列が固定していないので、値の貼り付けを使って、数値を固定化します。
D3:D12を範囲選択して、コピーします。
貼り付けボタンから、値を選択します。すると、数式ではなく値に代わりました。
これで、C列の数値は変わることが無くなりましたので、このようにすれば、
重複しないランダムな数値を作ることが出来ますので、何か機会がありましたら、
やってみると面白いですよ。