エクセル(Excel)でランダムな数値を発生させたい
抽選をしたいときなど人が入力したデータではないランダムな数字を生成したいときがあるでしょう。そういうとき用にランダムな数値を返すランダム関数が用意されています。
それら関数を使えば簡単に目的の乱数を生成し、ランダムな並べ替え・ソート・振り分けといったことが公平にできるようになるでしょう。
エクセル(Excel)でランダムな数値を発生させる方法
エクセルには、ランダムな数値を生成する方法がいくつか用意されています。順番にやり方を見ていきましょう。
完全にランダムな数値を発生させる
完全にランダムな数字を発生させたい場合はRAND関数を使用します。使い方は簡単で、セルに、「RAND()」と入力するだけです。引数は必要ありません。
0~100など整数の乱数が欲しい場合は、以下のように10倍・100倍とした後にROUND関数で小数点以下を切り捨てます。
=ROUND(RAND()*100,0)
これで整数の乱数を生成することが可能です。
RAND関数で生成される乱数はほかのセルを操作するたびにシャッフルされるので、一度生成された乱数を固定したい場合は、生成済み乱数をコピーした後に値として貼り付けるようにしてください。
指定範囲のランダムな数値を発生させる
「0~15」「16~31」のように決まった範囲の乱数を生成したい時があるでしょう。そういう時はわざわざ難しい関数を組んで抽出しなくても、RANDBETWEEN関数を使えば一発で生成できます。
=RANDBETWEEN(最小値,最大値)
RANDBETWEEN関数は最小値と最大値を指定することで、その範囲の整数値を返すことが出来ます。
例えば「=RANDBETWEEN(15,31)」とした場合は15~31までの整数の乱数が生成されます。
重複しない乱数を生成する
重複しない乱数を生成する場合は少しテクニックが必要です。やり方は少し複雑で、RANK関数とROUND関数を使用します。
RANK関数は数値の大きさに応じて順位付けをする関数で、指定範囲内で何番目に大きいか・小さいかということを整数値で返す関数です。
この仕様を応用し、ROUND関数で数値をランダム生成し、その数値を使ってRANK関数で順位付けすることで重複しないランダムな数値を生成することが可能です。
続いてRANK関数でこの乱数の順位付けを行います。どのセルでもいいので以下の数式を入力しましょう。
=RANK(D2,$D$2:$D$9,0)
今入力したものを下の行にコピーしていきます。
最初の準備こそ面倒ですが、確実に重複しない乱数を生成できるので、応募者から抽選といった「重複が認められない&乱数の範囲が決まっている」という場合はこの方法を利用しましょう。
RAND関数で生成した乱数が重複したらどうなるのかという話ですが、RAND関数では小数点以下第14位まで生成されるため、実際に重複するのは天文学的な確率です。100倍して小数点以下を切り捨てるといった使い方だと乱数候補がかなり少なくなるため簡単に重複しますが、この方法なら重複することはなくなるでしょう。