-
Home »
-
エクセル関数一覧表 »
-
Excel関数の目次 »
-
ランダムな数値を返す関数の使い方
- エクセルの乱数を発生させる関数RAND関数と任意の範囲のランダムな整数値を発生させるRANDBETWEEN関数についてまとめています。
これらの関数を使うことでサンプルデータの作成や、データをランダムに並べ替えるといった使い方ができます。
- Excel for Microsoft365,Excel2021で使用できるRANDARRAY関数の使い方はRANDARRAY関数でランダムな数値の配列を返すをご覧ください。
更新:2024/6/28;作成:2013/9/13
乱数を返す topへ
ランド(ランダム)
=RAND()
0以上で1より小さい乱数を発生させます。
ワークシートが再計算されるたびに、新しい乱数が返されます。
- RAND関数では0以上で1よりも小さい数値が返されます。1は含まれませんのでご注意ください。
- B2セルに =RAND() と入力して、B11セルまでオートフィルで数式をコピーした例です。
- RAND関数で乱数を発生させた後、ワークシートが再計算されるたびに乱数の値が変更されます。
[F9]キーで再計算を実行できますが、コマンドでの再計算の方法は 再計算を手動で行うには? をご覧ください。
- 数式を数値に置き換えるには、数式バーに「=RAND()」と入力して[F9]キーを押します。
この時の「F9」は数式の検証(デバッグ)になります。再計算の[F9]とは異なる使い方です。
- 数式バーにカーソルが表示されています
- [F9]キーを押すと、値に変換されます。[Enter]キーを押すと確定されます。
元の数式 =RAND() に戻すには[Esc]キーを押します。
- 「a」と「b」の範囲で乱数を発生させるには、=RAND()*(b-a)+a とします。
- 1〜10の範囲で乱数を発生させる例
セルB2に=RAND()*(10-1)+1と入力し、B11までフィルハンドルをドラッグして数式をコピーします。
B列に乱数が表示されました。
小数値であるところがRANDBETWEEN関数と異なります。
- 1〜10の整数値に丸めたいと思います。
C2セル=ROUND(B2,0)、D2セルに=ROUNDDOWN(B2,0)、=ROUNDUP(B2,0)と整数値に丸めてみました。12行目までフィルハンドルをドラッグして数式をコピーします。
- この方法では、1〜10の整数値が表示できましたが、同じ値が複数あります。
- 10個の乱数を発生させて、整数値にしても同じ値が出てくることが上記の例でわかると思います。
同じ値が出てこないようにするには、10個の乱数の大小で順位を付けることで1〜10をそれぞれ1個だけにすることができます。
なお、この考えでは10個の乱数のなかに同じものはない・・・ということが前提になります。
- 作業列(C列)を使います。セルC2に=RAND() と入力し、C11までフィルハンドルをドラッグして数式をコピーします。
- セルA1に=RANK(C1,$C$1:$C$10) と入力し、A11までフィルハンドルをドラッグして数式をコピーします。
重複しない1〜10の数値を表示することができました。
- 再計算または【F9】キーを押すごとに値が変化しますので、値を固定したい時は値の貼り付けを行います。
A2:A11を選択して、[ホーム]タブの[コピー]ボタンをクリックします。
ショートカットキーは [Ctrl]+[C] です。
- [ホーム]タブの[貼り付け]→[値]をクリックします。
Excel for MIcrosoft365では [Ctrl]+[Shift]+[V]で値の貼り付けができるようになっています。
- A2:A11が数値になります。C列は不要ですので削除します。
Excel for Microsoft365,Excel2021ではSEQUENCE関数やRANDARRAY関数やSORTBY関数を使うことができます
- 上記の例は1〜10と連続した値でしたが、任意の数値を重複しないように1個だけ表示したい場合は?
連続しない数値なので、表示したい任意の数値をどこかに入力する必要があります。(以下の例ではF列を使っています)
- 下図のような作業列を利用してみました。
- D列に乱数を入れます。 =RAND()
- E列では乱数の順位を求めます。 =RANK(D2,$D$2:$D$11)
- F列に表示したい任意の数値を入力します。
B列に =VLOOKUP(ROW(A1),$E$2:$F$11,2,FALSE) として任意の数値を表示することができました。
- RANK関数で求めた1〜10の横のセルの値をVLOOKUP関数で順番に取り出しています。
参照の型 FALSEを0(ゼロ)として、 =VLOOKUP(ROW(A1),$E$2:$F$11,2,0) としてもOKです。
Excel for Microsoft365,Excel2021ではRANDARRAY関数やSORTBY関数を使うことができます。
- B2セルに =SORTBY(F2:F11,RANDARRAY(10)) と入力しています。
RANDARRAY(10)で10個の乱数を発生させ、SORTBY関数でこの数値の順番で並べ替えています。
- B2:B11に名前を入力します。
C2:C11に =RAND() と入力します。
- C列のセルを選択した状態で、「昇順で並べ替え」または「降順で並べ替え」を実行します。
この並べ替えを実行するたびに再計算が行われますので、RAND()で返す値が変わり、データがこの変わった値で並べ替えられます。
よって、並べ替えを実行するたびにB列の名前の並び順はランダムに変わります。
乱数を生成して抽選する
- D2セルに =IF(RANK(C2,$C$2:$C$11)<=3,"大当たり","") と入力して、D11セルまでコピーします。
すると、計算結果が3以下の人に「大当たり」と表示されます。
[F9]で再計算するたびに「大当たり」の表示位置が変わります。
Excel for Microsoft365,Excel2021ではRANDARRAY関数やSORTBY関数を使うことができます。
- データリストを他のセルに並べ替える方法になります。
D2セルに =SORTBY(B2:B11,RANDARRAY(10)) と入力しています。
- 乱数を使ってパスワードを作成する方法は、以下のリンク先を参照してください。
- マクロ(VBA)を使って乱数を生成する例は、以下のリンク先を参照してください。
- Excel2007以降は、Excelのオプションで、[数式]を選択して、「手動」にチェックを入れます。これで、再計算は手動になり自動で再計算されなくなります。
- [数式]タブの計算方法 グループにある[計算方法の設定]から変更ができます。
[再計算実行]をクリックするか、[F9]キーを押すと再計算が実行できます。
指定範囲の乱数を返す topへ
ランド ビトウィーン(ランダム ビトウィーン)
=RANDBETWEEN(最小値,最大値)
指定された範囲で一様に分布する整数の乱数を返します
Excel2003以下のバージョンでエラー値 #NAME? が返される場合は、分析ツール アドインを組み込む必要があります。
- RANDBETWEEN関数では指定した範囲の整数の乱数が返されます。
- =RANDBETWEEN(500,2000)として、500〜2000の乱数を発生させた例です。
- 100単位の乱数は =INT(RANDBETWEEN(500,2000)/100)*100 とすることができます。
スポンサードリンク
Home »
エクセル関数一覧表 »
ランダムな数値を返す関数(RAND関数、RANDBETWEEN関数)の使い方
PageViewCounter
Since2006/2/27