Excelで乱数を使ってデータを作成したり、シミュレーションを行ったりする機会は多いですよね。
しかし、「小数の乱数を指定した範囲で出したい」と思っても、次のような悩みにぶつかりがちです。
- RAND関数で出る乱数が「0〜1」だけになってしまう
- 小数第1位・第2位まで指定して乱数を出したい
- 「10〜20の範囲で0.1刻みの乱数を作りたい」
- RANDBETWEEN関数では整数しか作れない
実はExcelでは、少しの工夫で範囲を指定した小数乱数を簡単に生成することができます。
この記事では、RAND関数を中心に「範囲付きの小数乱数」を作る方法を、
初心者にも分かりやすく、実務レベルまで徹底解説します。
目次
- ✅ RAND関数の基本:0以上1未満の乱数を生成する
- ・RAND関数の構文
- ✅ RAND関数 × 四則演算で範囲を指定する
- ・RAND関数の四則演算の構文
- ・例1:1〜10の範囲で小数の乱数を生成
- ・例2:5〜20の範囲で乱数を出す
- ✅ 小数点以下の桁数を指定して乱数を出す方法
- ・小数点以下の構文
- ・例1:1〜10の範囲で小数第1位まで
- ・例2:0〜100の範囲で小数第2位まで
- ・例3:-5〜5の範囲で小数第1位まで
- ✅ RANDARRAY関数で範囲付き小数乱数をまとめて作る(Excel 365以降)
- ・小数乱数の構文
- ・例1:1〜10の小数を10個生成
- ・例2:0〜1の乱数を3列×5行で生成
- ✅ RANDBETWEEN関数で小数を作る裏技(×RAND)
- ・例:1〜10の範囲で0.1刻みの乱数
- ・例:1〜100の範囲で0.01刻みの乱数
- ✅ 乱数を固定して再計算を防ぐ方法
- ✅ 小数乱数の応用:現場で役立つ実践例
- ・例1:売上データや数値のサンプル作成
- ・例2:成績表の点数をランダムに生成
- ・例3:確率シミュレーション(0〜1乱数)
- ・例4:重みづけのある乱数生成
- ✅ 乱数が変わるのを防ぐ「計算モードの切り替え」
- ✅ RAND関数とROUND関数の組み合わせ早見表
- ✅ RPA・Power Automateとの連携で自動データ生成も可能
- ・自動化の例
- ✅ まとめ:Excelで範囲を指定した小数乱数を自由自在に!
✅ RAND関数の基本:0以上1未満の乱数を生成する
Excelで小数の乱数を作る基本となるのが、RAND関数です。
・RAND関数の構文
"=RAND()"
・説明
RAND関数は、0以上1未満の小数(例:0.1234、0.9876など)をランダムに返します。
シートを再計算するたびに値が変わります。
・特徴
- 小数点以下15桁まで生成可能
- 範囲は「0.000000...~0.999999...」
- 自動更新される(F9キーや編集で再計算)
・例
セル | 数式 | 結果(例) |
---|---|---|
A2 | =RAND() | 0.24795831 |
A3 | =RAND() | 0.90812143 |
ランダムに0〜1の間の小数が出力されます。
ただし、RAND()単体では「0〜1」しか出せません。
次に、範囲を指定する方法を紹介します。
✅ RAND関数 × 四則演算で範囲を指定する
RAND関数は掛け算・足し算を組み合わせることで、
任意の範囲で小数の乱数を作ることができます。
・RAND関数の四則演算の構文
"=RAND()*(最大値 - 最小値) + 最小値"
・例1:1〜10の範囲で小数の乱数を生成
"=RAND()*(10-1)+1"
結果は、1.000〜9.999の間のランダムな小数になります。
・例2:5〜20の範囲で乱数を出す
"=RAND()*(20-5)+5"
結果例:7.45、18.22、12.03 など。
このように、「(最大値−最小値)」で範囲を広げ、「+最小値」で基準をずらすことで、
自由に範囲をコントロールできます。
・POINT
RAND関数の値は常に0〜1なので、
「掛け算でスケールを調整」→「足し算で基準を移動」するのがポイントです。
参考:【Excel】「掛け算 × パーセント」の正しい使い方|10%増・割引・消費税・達成率まで完全網羅!
✅ 小数点以下の桁数を指定して乱数を出す方法
RAND関数で生成される乱数は小数点以下が長くなりすぎることがあります。
そこで、ROUND関数などを組み合わせて桁数を制御します。
・小数点以下の構文
"=ROUND(RAND()*(最大値 - 最小値) + 最小値, 桁数)"
・例1:1〜10の範囲で小数第1位まで
"=ROUND(RAND()*(10-1)+1,1)"
結果例:1.3、5.7、9.2 など
・例2:0〜100の範囲で小数第2位まで
"=ROUND(RAND()*100,2)"
結果例:32.45、87.01、3.72 など
・例3:-5〜5の範囲で小数第1位まで
"=ROUND(RAND()*(5-(-5))+(-5),1)"
結果例:-3.2、1.5、4.9 など
・POINT
ROUND関数の第2引数で桁数を指定できます。
引数 | 意味 | 例 |
---|---|---|
0 | 整数に丸める | 3 |
1 | 小数第1位まで | 3.2 |
2 | 小数第2位まで | 3.27 |
✅ RANDARRAY関数で範囲付き小数乱数をまとめて作る(Excel 365以降)
大量の小数乱数を一度に作りたい場合は、
RANDARRAY関数を使うと効率的です。
・小数乱数の構文
"=RANDARRAY(行数, 列数, 最小値, 最大値, 整数指定)"
・例1:1〜10の小数を10個生成
"=RANDARRAY(10,1,1,10,FALSE)"
結果:1〜10の間の小数が10個まとめて出力されます。
・例2:0〜1の乱数を3列×5行で生成
"=RANDARRAY(5,3,0,1,FALSE)"
A列 | B列 | C列 |
---|---|---|
0.12 | 0.98 | 0.31 |
0.55 | 0.40 | 0.77 |
0.21 | 0.83 | 0.63 |
・POINT
- 第5引数をFALSEにすると小数で出力
- TRUEにすると整数で出力
- Excel 365・2021限定機能(動的配列対応)
RANDARRAYは、統計分析やテストデータ作成など、
大量データ生成に最も便利な乱数関数です。
✅ RANDBETWEEN関数で小数を作る裏技(×RAND)
RANDBETWEEN関数は整数専用ですが、
RAND関数を掛け合わせることで「疑似的に小数乱数」を作れます。
・例:1〜10の範囲で0.1刻みの乱数
"=RANDBETWEEN(10,100)/10"
結果:1.0、5.3、9.8 など
この式では、10〜100の整数を作り、10で割ることで1桁の小数を作っています。
・例:1〜100の範囲で0.01刻みの乱数
"=RANDBETWEEN(100,10000)/100"
結果:23.45、76.89 など
・POINT
- 小数の精度を「割る数」でコントロール
- RANDBETWEENは範囲指定が簡単で初心者におすすめ
- RAND関数と同様に再計算で値が変わる
✅ 乱数を固定して再計算を防ぐ方法
RANDやRANDARRAYは、シートを再計算すると値が変わります。
ランダム値を「固定したい」場合は、値貼り付けで対処します。
・手順
- RAND関数やRANDARRAYで乱数を作成
- セルを選択 → Ctrl + C(コピー)
- 右クリック → 「形式を選択して貼り付け」 → 「値」
これで関数が削除され、数値だけが残ります。
再計算しても乱数が変わらなくなります。
・補足
F9キーを押して関数を数値化する方法もあります。
数式バーで=RAND()
を選択 → F9 → Enter
これでその場で固定値に変換されます。
✅ 小数乱数の応用:現場で役立つ実践例
Excelの小数乱数は、実務でもさまざまな場面で使えます。
・例1:売上データや数値のサンプル作成
"=ROUND(RAND()*(100000-5000)+5000,0)"
→ 5000〜100000円のランダム金額を自動生成
・例2:成績表の点数をランダムに生成
"=ROUND(RAND()*(100-60)+60,1)"
→ 60〜100点の小数点付きのランダムスコアを出力
・例3:確率シミュレーション(0〜1乱数)
"=IF(RAND()<0.2,"成功","失敗")"
→ 20%の確率で「成功」を返す。
・例4:重みづけのある乱数生成
"=ROUND(RAND()^2*100,1)"
→ 小さい値が出やすい乱数を作れる。
・POINT
RAND関数は確率やテストデータなど「仮のデータ作成」に非常に便利です。
データ分析・予測・機械学習のトレーニングデータ準備にも使えます。
✅ 乱数が変わるのを防ぐ「計算モードの切り替え」
Excelの自動再計算を止めると、乱数が変動しなくなります。
・操作手順
- [数式]タブ → [計算方法の設定] → 「手動」を選択
- 必要な時だけF9で再計算
・POINT
- 「RAND」や「RANDBETWEEN」が変わらない
- 他の数式も止まるので、作業後は「自動」に戻す
✅ RAND関数とROUND関数の組み合わせ早見表
範囲 | 桁数 | 関数式 | 出力例 |
---|---|---|---|
0〜1 | 3桁小数 | =ROUND(RAND(),3) | 0.745 |
1〜10 | 2桁小数 | =ROUND(RAND()*9+1,2) | 5.27 |
-5〜5 | 1桁小数 | =ROUND(RAND()*10-5,1) | -2.3 |
100〜200 | 整数 | =ROUND(RAND()*100+100,0) | 157 |
0〜1000 | 2桁小数 | =ROUND(RAND()*1000,2) | 873.65 |
このように式を少し変えるだけで、あらゆる範囲の小数乱数を作ることができます。
✅ RPA・Power Automateとの連携で自動データ生成も可能
Excelの乱数生成は、RPAツール(UiPath・Power Automate)と組み合わせることで、
データ作成やテストの自動化にも活用できます。
・自動化の例
- Power Automateで毎朝Excelを開き、乱数を生成して保存
- UiPathでExcel乱数を使い、テストデータを自動作成
- Excel乱数を基に仮シミュレーションレポートを自動生成
「RAND()で作る → 値貼り付けで固定 → 自動出力」までの流れを組めば、
完全自動のデータジェネレーターが実現します。
✅ まとめ:Excelで範囲を指定した小数乱数を自由自在に!
- RAND関数で0〜1の小数を生成
- 「*(最大値−最小値)+最小値」で範囲を指定
- ROUND関数で小数点以下の桁数をコントロール
- RANDARRAYで大量の乱数を一括生成可能
- 値貼り付けで固定化すれば再計算で変化しない
- Power Automateなどと組み合わせれば完全自動化も可能
Excelの乱数機能は単なる「ランダムな数字生成」にとどまらず、
業務効率化・テストデータ作成・シミュレーション設計など、幅広く活用できます。
「RAND × 範囲 × 小数」の組み合わせをマスターして、
あなたのExcel操作をよりスマートに、よりクリエイティブに進化させましょう。