「テスト用にランダムなデータが大量にほしい」「シミュレーション用の乱数を手入力するのは面倒すぎる」と感じたことはありませんか? セル1つずつに乱数を入力していたら、あっという間に日が暮れてしまいますよね。
ExcelのRANDARRAY関数を使えば、指定した行数・列数のランダムな数値を一括で生成できます。 この記事では、RANDARRAY関数の基本から整数・小数の切り替え、他の関数との組み合わせまでわかりやすく解説します。
ExcelのRANDARRAY関数とは?
RANDARRAY関数は「ランダムアレイ」と読みます。 「Random(ランダム)」と「Array(配列)」を組み合わせた名前です。
この関数は、指定したサイズのランダムな数値の配列を返します。 たとえば「5行3列の乱数テーブルがほしい」といった場面で、たった1つの数式で一括生成できますよ。
RANDARRAY関数はMicrosoft 365またはExcel 2021以降で利用できます。 「動的配列関数」の1つで、結果が自動的に隣接セルへ展開(スピル)するのが特徴です。
RANDARRAY関数の書き方(構文と引数)
基本構文
=RANDARRAY([行], [列], [最小値], [最大値], [整数])
引数は5つありますが、すべて省略できます。 省略した場合は、0から1の間の小数が1つ返されます。
引数の一覧
| 引数 | 必須/省略可 | 説明 | 省略時の初期値 |
|---|---|---|---|
| 行 | 省略可 | 配列の行数 | 1 |
| 列 | 省略可 | 配列の列数 | 1 |
| 最小値 | 省略可 | 生成する数値の下限 | 0 |
| 最大値 | 省略可 | 生成する数値の上限 | 1 |
| 整数 | 省略可 | TRUE=整数 / FALSE=小数 | FALSE(小数) |
「整数」引数のポイント: TRUEまたは1を指定すると整数だけが生成されます。 FALSEまたは0(省略時も同じ)だと小数値になります。
RANDARRAY関数の基本的な使い方
例1: 5行3列のランダムな整数を生成する
1から100までの整数をランダムに生成してみましょう。
=RANDARRAY(5, 3, 1, 100, TRUE)
この数式を1つのセルに入力するだけで、5行3列の15個の整数が自動的に展開されます。 入力したセルから右と下に結果がスピルされるので、展開先のセルは空けておいてくださいね。
例2: 引数をすべて省略した場合
=RANDARRAY()
引数をすべて省略すると、0以上1未満の小数が1つ返されます。 この動きはRAND関数と同じですね。
例3: 行・列だけを指定する
=RANDARRAY(3, 4)
行と列だけを指定すると、3行4列の配列で0以上1未満の小数が返されます。 最小値・最大値・整数は省略時の初期値(0, 1, FALSE)が使われますよ。
RANDARRAY関数の実践的な活用例
テストデータの一括生成
ダミーの売上データなどを作りたいときに便利です。 たとえば、10人分の売上金額(1,000円~50,000円)を一括で作るなら次のように書きます。
=RANDARRAY(10, 1, 1000, 50000, TRUE)
10行1列の配列で、1,000から50,000の間の整数がランダムに生成されます。
SORT関数と組み合わせてソート済みの乱数を作る
ランダムに生成した数値を昇順で並べたいときは、SORT関数で囲みます。
=SORT(RANDARRAY(10, 1, 1, 100, TRUE))
これで1から100の整数が10個、小さい順に並んだ状態で表示されます。 テスト用のソート済みデータがほしいときに重宝しますよ。
INT関数と組み合わせて整数に変換する
「整数」引数をTRUEにする代わりに、INT関数で小数点以下を切り捨てる方法もあります。
=INT(RANDARRAY(5, 3, 1, 100))
この書き方でも整数が得られます。 ただし、RANDARRAY関数の「整数」引数をTRUEにするほうがシンプルなので、通常はそちらがおすすめです。
INT関数の使い方はこちらの記事で詳しく解説しています。
値を固定する方法(再計算で変わらないようにする)
RANDARRAY関数は「揮発性関数」です。 シートを再計算するたびに、値が新しい乱数に変わります。
生成した値を固定したいときは、次の手順で対応しましょう。
- RANDARRAY関数で生成されたセル範囲を選択する
- Ctrl+C でコピーする
- 同じ範囲を選択した状態で「貼り付け」→「値」を選ぶ
これで数式が値に置き換わり、再計算しても変わらなくなりますよ。
RANDARRAY関数でよくあるエラーと対処法
#VALUE! エラー
行数や列数に0以下の数値、または小数を指定すると発生します。 行と列には1以上の整数を指定してください。
=RANDARRAY(0, 3) → #VALUE! エラー
=RANDARRAY(2.5, 3) → #VALUE! エラー
=RANDARRAY(5, 3) → 正常に動作
また、最小値が最大値より大きい場合も#VALUE!エラーになります。
=RANDARRAY(5, 3, 100, 1) → #VALUE! エラー(最小値>最大値)
#CALC! エラー
生成する配列が大きすぎてシートに収まらない場合に発生します。 たとえば、A1セルに =RANDARRAY(1048577, 1) と入力すると、Excelの最大行数(1,048,576行)を超えるためエラーになります。
配列のサイズを小さくするか、入力セルの位置を調整してみてください。
#NAME? エラー
RANDARRAY関数に対応していないバージョンのExcelで使おうとすると、#NAME?エラーが表示されます。 この関数はMicrosoft 365またはExcel 2021以降が必要です。 お使いのバージョンが対応しているか、確認しておきましょう。
#SPILL! エラー
スピル先(配列が展開される先)のセルにデータが入っていると、#SPILL!エラーになります。 展開先のセルを空にすれば解消しますよ。
RAND・RANDBETWEEN関数との違い・使い分け
Excelには乱数を生成する関数が3つあります。 目的に応じて使い分けましょう。
| 関数 | 返す値 | 個数 | 引数 |
|---|---|---|---|
| RAND() | 0以上1未満の小数 | 1つ | なし |
| RANDBETWEEN(下限, 上限) | 指定範囲の整数 | 1つ | 2つ |
| RANDARRAY(行, 列, 最小, 最大, 整数) | 指定範囲の整数または小数 | 配列(複数) | 5つ(すべて省略可) |
使い分けの目安はこちらです。
- 乱数が1つだけほしい → RAND関数またはRANDBETWEEN関数
- 整数の乱数が1つほしい → RANDBETWEEN関数が手軽
- 複数の乱数を一括で生成したい → RANDARRAY関数
RANDARRAY関数は配列で返せるのが最大の強みです。 RAND関数やRANBETWEEN関数だと、必要なセルの数だけ数式をコピーする必要があります。 RANDARRAY関数なら1つの数式で完結するので、管理もラクですよ。
まとめ
この記事では、ExcelのRANDARRAY関数の使い方を解説しました。 ポイントをおさらいしましょう。
- RANDARRAY関数は、指定した行数・列数のランダムな数値の配列を一括生成できる
- 引数は5つ(行・列・最小値・最大値・整数)で、すべて省略可能
- 「整数」引数をTRUEにすると整数、FALSEまたは省略で小数が返される
- 揮発性関数なので再計算のたびに値が変わる。固定するにはコピー→値貼り付け
- SORT関数と組み合わせるとソート済みの乱数配列が作れる
- RAND関数・RANDBETWEEN関数との違いは「配列で一括生成できるかどうか」
- Microsoft 365またはExcel 2021以降が必要
テストデータの作成やシミュレーションなど、ランダムなデータが必要な場面でぜひ活用してみてください。
