エクセル(Excel)でランダムな数値を発生させる方法!

エクセル(Excel)でランダムな数値を発生させる方法!

Excel では何でも数値を生成することができます。エクセルで生成できるランダムな数値にはしっかりと決まりがあり、その決まりを知った上で活用する必要があります。そこで、この記事ではエクセルでランダムな数値を生成する方法をいくつか紹介していきます。


目次[非表示]

  1. エクセル(Excel)でランダムな数値を発生させたい
  2. エクセル(Excel)でランダムな数値を発生させる方法

エクセル(Excel)でランダムな数値を発生させたい

抽選をしたいときなど人が入力したデータではないランダムな数字を生成したいときがあるでしょう。そういうとき用にランダムな数値を返すランダム関数が用意されています。

それら関数を使えば簡単に目的の乱数を生成し、ランダムな並べ替え・ソート・振り分けといったことが公平にできるようになるでしょう。

エクセル(Excel)でランダムな数値を発生させる方法

エクセルには、ランダムな数値を生成する方法がいくつか用意されています。順番にやり方を見ていきましょう。

完全にランダムな数値を発生させる

完全にランダムな数字を発生させたい場合はRAND関数を使用します。使い方は簡単で、セルに、「RAND()」と入力するだけです。引数は必要ありません。

RAND関数
RAND関数では0~1までの間のランダムな数値が生成されます。

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関数で順位付けすることで重複しないランダムな数値を生成することが可能です。

RAND関数で乱数を生成
まずは、RAND関数で乱数をいくつか生成してください(今回はD2:D9に生成しました)

続いてRANK関数でこの乱数の順位付けを行います。どのセルでもいいので以下の数式を入力しましょう。

=RANK(D2,$D$2:$D$9,0)

今入力したものを下の行にコピーしていきます。

重複しない乱数の生成
するとこのように重複しない乱数が生成されたはずです。

最初の準備こそ面倒ですが、確実に重複しない乱数を生成できるので、応募者から抽選といった「重複が認められない&乱数の範囲が決まっている」という場合はこの方法を利用しましょう。

RAND関数で生成した乱数が重複したらどうなるのかという話ですが、RAND関数では小数点以下第14位まで生成されるため、実際に重複するのは天文学的な確率です。100倍して小数点以下を切り捨てるといった使い方だと乱数候補がかなり少なくなるため簡単に重複しますが、この方法なら重複することはなくなるでしょう。


関連記事