今回は乱数を発生させるRAND関数の使い方を紹介します。
RAND関数
RAND関数の使い方は非常にシンプルです。以下のように、”=RAND()”とすると、0から1の間の乱数を発生させることができます。
この時、RAND関数はデータを更新するたびに再計算されます。例えば以下のようにRAND関数を入力したセルで一度編集モードに入り、再度Enterを押すと再計算され、先ほど異なる乱数が発生します。
以下が実行例です。
そのため、発生させた乱数を固定したい場合は、値で張り付けましょう。値貼り付けについては以下の記事を参照ください。
0-1の間の乱数を生成させる
では、RAND関数の実際の使い方について説明します。まずはRAND関数の基本である0-1の乱数を発生させる機能を使って見ます。0-1というのは確率と見ることができますので、以下では田中さん、鈴木さん、山田さんが大学A、大学B、大学Cに合格する確率を乱数で表示させてみます。
どこかのセルを編集するたびに、以下のようにすべてのRAND関数が再計算されます。
0-1の間で乱数を発生させる使い方は、適当な確率値を設定したい時などに便利です。以下は値で張り付けを実行した後に、Ctrl+Shift + 5を押して、%表記に変更しました。
なお、ショートカットキーについては以下で纏めていますので、こちらもご参照ください。
応用編
続いて、上述のRAND関数を用いた応用的な使い方を紹介します。
0-100の間で整数の乱数を生成させる
まずは0-100の間の整数の乱数を生成させる方法です。以下のように、RAND関数で生成した値を100倍して、整数になる様にROUND関数を使って四捨五入することで生成することができます。
ROUND関数については以下を参照ください。
40-90の間で乱数を発生させる
まずRAND関数の値を50倍することで0-50の間で乱数を発生させ、そこに+40することで40-90の間とすることができます。
半分以上は”0”にして、他は0-10の間で乱数を発生させる
以下のように、RANDで生成した0-1の間の乱数が0.6未満だったら0を表示させ、0.6以上の場合は新たにRAND関数を用い、乱数を10倍して整数化しています。こうすることで、0が多いデータ(スパースなデータ)を生成することができます。
正規分布に沿った乱数を生成する
正規分布に従った乱数が必要なのは、例えばテストの点数の架空のデータを作成するようなケースです。テストの点数は典型的な正規分布のデータですが、RAND()関数を使用すると、不自然に高得点と低得点のデータが多くなってしまいます。
そのようなケースでは、NORM.INV関数との組み合わせで正規分布に沿った乱数を生成することができます。詳細は以下を参照ください。
コメント