本文では、Excelでよく使われる各種類の乱数を生成する数式と関連する数学の関数を説明します。
Excelでは関数を使って乱数を生成できます。次には、浮動小数点数、整数、固定桁の小数など、乱数を生成する様々な方法について説明します。
目次
Excel数式リファレンス
本文では、Excelでよく使われる乱数を生成する方法を整理し、各種類のランダム分布もあります。読者は気楽に検索またはコピーで使用できます。
Excelは、ファイルが開かれる度にこれらの乱数を再計算し、その度に生成される値は異なります。Excelですべての乱数を手動で再生成する場合は、F9キーを押します。
一様分布
一様分布(uniform distribution)とは、すべての乱数の確率が同じです。連続型と離散型の常用数式を次に示します。
Excel 数式 | データの形態 | 乱数の範囲 |
=RAND() | 浮點數 | 0 ≦ x < 1 |
=RAND()*100 | 浮點數 | 0 ≦ x < 100 |
=RAND()*100-50 | 浮點數 | -50 ≦ x < 50 |
=ROUNDDOWN(RAND(),2) | 小數點以下 2 位 | 0 ≦ x ≦ 0.99 |
=ROUNDDOWN(RAND()*10,2) | 小數點以下 2 位 | 0 ≦ x ≦ 9.99 |
=RANDBETWEEN(1,100) | 整數 | 1 ≦ x ≦ 100 |
=RANDBETWEEN(-1,1) | 整數 | -1 ≦ x ≦ 1 |
=RANDBETWEEN(0,10) | 整數 | 0 ≦ x ≦ 10 |
=RANDBETWEEN(1,100)/100 | 小數點以下 2 位 | 0.01 ≦ x ≦ 1 |
=RANDBETWEEN(-1000,1000)/100 | 小數點以下 2 位 | -10 ≦ x ≦ 10 |
以下はExcelで実行したテストです。生成される乱数は毎回異なります。F9キーを押して乱数データを再生成します。
正規分布
正規分布(normal distribution、またはガウス分布とも呼ばれます)は、よく使われる一般的なデータ分析の分布の1つです。次にはExcelの正規分布データを生成する数式です。
Excel 数式 | 平均値 | 標準偏差 |
=NORM.INV(RAND(),0,1) | 0 | 1 |
=NORM.INV(RAND(),3.1,8.6) | 3.1 | 8.6 |
=NORMINV(RAND(),0,1) –舊版 | 0 | 1 |
=NORMINV(RAND(),3.1,8.6) –舊版 | 3.1 | 8.6 |
ここでのNORM.INVとNORMINVの機能は同じです。NORM.INVは新しいバージョンの関数ですが、NORMINVは古いバージョンです。次にはExcelでNORM.INV関数の実際の使用状況です。
上記は常用の数式の組み合わせです。次にはこれらの関数に関わる詳しい説明と使用方法です。
乱数に関わるExcel関数
次には上記のある関数を簡単に解説します。
RAND関数
ExcelのRAND関数は0以上で1より小さい乱数(一様分布のランダム実数)を発生させます。
aとbの間にランダム乱数を生成する場合は、次の数式を使用できます。
=RAND()*(b-a)+a
これより生成された値の範囲はa≤x <bです。
F9を押すと、すべてのRAND関数が乱数データを再生成します。
RANDBETWEEN関数
ExcelのRANDBETWEEN関数は、指定された範囲で一様に分布する整数の乱数を返します。最初の引数は最小の整数値を返し、2番目の引数は最大の整数値を返します。 1から100までの乱数を生成する数式は次のように示します。
=RANDBETWEEN(1,100)
-10から10までの乱数など、負の数を生成することもできます。
=RANDBETWEEN(-10,10)
F9を押すと、すべてのRANDBETWEEN関数が乱数データを再生成します。
NORM.INV関数
ExcelのNORM.INV関数は、特定の正規累積分布関数の逆の値を返すことができます。最初の引数は正規分布の確率値で、2番目と3番目の引数は正規分布の平均と標準偏差です。
この関数をRAND関数と組み合わせると、正規分布から乱数を生成できます。標準正規分布から乱数を生成する数式は次のように表示します。
=NORM.INV(RAND(),0,1)
NORMINV 関数は古いバージョンのため、できるだけ使わないのほうがいいです。
ROUNDDOWN関数
ExcelのROUNDDOWN関数は、指定した桁数を0に切り捨てることができる関数です。小数点以下の値を四捨五入します。
=ROUNDDOWN(3.14159, 0)
結果は3になります。 小数点以下2桁まで保留したい場合は、次の数式を使用してください。
=ROUNDDOWN(3.14159, 2)
結果は3.14になります。
コメントを残す