Excel関数 逆引き集 | 乱数を生成 → RAND

Excel
スポンサーリンク

概要

「適当に数字をばらまきたい」「サンプルデータを作りたい」「シミュレーション用にランダムな値がほしい」
そんなときに使うのが RAND 関数です。

RAND は、
0以上1未満の乱数(例:0.123456…のような小数)を返す関数です。
しかも、ワークシートが再計算されるたびに値が変わる“生きている数式”というのが大きな特徴です。


RAND 関数の基本

書式と戻り値

RAND の書式はとてもシンプルです。

=RAND()

引数は一切ありません。
この式をセルに入力して Enter を押すと、0以上1未満のランダムな小数が返ってきます。

例:
0.02458
0.73591
0.99912

といった具合に、毎回違う値が出てきます。

「揮発性関数」であること

RAND の一番のクセは、「計算のたびに値が変わる」ことです。

・別のセルに何か入力した
・F9 キーで再計算した
・ブックを開き直した

こうしたタイミングで、RAND を使っているセルはすべて新しい乱数に置き換わります。
シミュレーションには便利ですが、「一度決めた乱数を固定して使いたい」ときは工夫が必要になります。


RAND から任意の範囲の乱数を作る考え方

基本の変換式「a〜b の乱数」

RAND は 0以上1未満の乱数を返しますが、そのままだと使いづらいことが多いです。
そこでよく使うのが、次の変換式です。

=RAND()*(b-a)+a

a:最小値
b:最大値

この式で、「a以上b未満」の乱数が作れます。

例えば、0〜100 の乱数なら:

=RAND()*100

50〜100 の乱数なら:

=RAND()*50+50

というように変形します。

整数の乱数を作る

RAND は小数を返すので、「整数の乱数」が欲しいときは、
ROUNDDOWN や INT などと組み合わせます。

0〜9 の整数乱数なら:

=ROUNDDOWN(RAND()*10,0)

0〜99 の整数乱数なら:

=ROUNDDOWN(RAND()*100,0)

という形で作れます。
「掛ける数」で範囲を決め、「ROUNDDOWN で小数を落とす」という発想です。


乱数を「固定」したいときのテクニック

RAND は再計算のたびに値が変わるので、
「このときに出た乱数をそのまま“値”として残したい」という場面がよくあります。

代表的なやり方は 2つです。

1つ目は、「数式を値に変える」方法です。
RAND を入力したセルをコピーし、「値として貼り付け」をすると、その時点の乱数が固定されます。

2つ目は、数式バーで =RAND() と入力した状態で F9 キーを押す方法です。
F9 を押すと、その場で乱数が“計算された値”に置き換わり、数式ではなく数値として残ります。

どちらも、「もう変わってほしくない乱数」を確定させるときに使う定番テクニックです。


RAND の実務的な使いどころ

サンプルデータ・テストデータの作成

「とりあえず適当な数値が並んでいてほしい」というとき、
RAND はとても手軽です。

例えば、A2:A101 に =RAND() を入れてコピーすれば、
0〜1 の乱数が100個並びます。
そこから掛け算や四捨五入で、売上・点数・割合など、いろいろな“それっぽい”データを作れます。

無作為抽出(サンプリング)

データの行ごとに RAND を入れておき、
その列で並べ替えをすると、「ランダムな順番」に並び替えられます。
上から何件かを“抽出サンプル”として使う、というのがよくあるパターンです。

シミュレーション・試行の繰り返し

RAND は「再計算のたびに値が変わる」ので、
売上予測やリスクシミュレーションなどで「何パターンも試したい」ときに向いています。

F9 を押すたびに乱数が変わり、
それに連動してグラフや集計結果も変わる――
こういう“動くシミュレーションシート”を作るときの土台になります。


RAND のテンプレート集

0〜1 の乱数(基本形)

=RAND()

0〜100 の乱数(小数)

=RAND()*100

50〜100 の乱数(小数)

=RAND()*50+50

0〜9 の整数乱数

=ROUNDDOWN(RAND()*10,0)

a〜b の乱数(小数)

=RAND()*(b-a)+a

例題

問題1

0以上1未満の乱数を 1 つ生成したいとします。
セルに入力する式を書いてください。

=RAND()

問題2

0以上100未満の乱数(小数)を生成したいとします。
セルに入力する式を書いてください。

=RAND()*100

問題3

0〜9 の整数の乱数を 1 つ生成したいとします。
RAND と ROUNDDOWN を使って式を書いてください。

=ROUNDDOWN(RAND()*10,0)

問題4

50以上100未満の乱数(小数)を生成したいとします。
RAND を使って式を書いてください。

=RAND()*50+50

問題5

RAND で生成した乱数を「その時点の値で固定」したいとします。
どのような操作をすればよいか、考え方を簡潔に答えてください。

1つのやり方は、RAND を入力したセルをコピーし、「値として貼り付け」することです。
もう1つは、数式バーで =RAND() と入力した状態で F9 キーを押し、その結果を確定させる方法です。


RAND は、「適当な数字」が欲しいときの入り口みたいな関数です。
そのまま使うだけでなく、「掛ける」「足す」「切り捨てる」と組み合わせて、
自分の欲しい“範囲・形の乱数”に変形していく感覚をつかめると、一気に面白くなってきます。

Excel
スポンサーリンク
シェアする
@lifehackerをフォローする
スポンサーリンク
タイトルとURLをコピーしました