RANDARRAY関数の使い方|乱数をまとめて作る・整数・重複なしの抽選・ランダムな日付【実機で解説】

RANDARRAY関数の使い方|乱数をまとめて作る・整数・重複なしの抽選・ランダムな日付【実機で解説】

RANDARRAY 関数は、乱数(ランダムな数)をまとめて作る関数です。=RANDARRAY(5,3,1,100,TRUE) と書くと、1〜100 の整数が 5 行×3 列に一度に並びます。RAND や RANDBETWEEN を 1 つずつコピーしなくて済みます。

この記事では、RANDARRAY の基本から、重複なしの抽選、ランダムな日付まで、実際の Excel で確かめた結果で説明します。乱数なので、画像の数字は開くたび・入力するたびに変わります。RANDARRAY は Microsoft 365 と Excel 2021 以降で使えます。

練習用Excelファイル(無料ダウンロード)
名前の一覧と、この記事の RANDARRAY の式をまとめた練習ファイルです。F9 キーを押すたびに結果が変わります。
Excelファイル(.xlsx)/登録不要/数式・練習データ入り
目次

RANDARRAY 関数の書き方

=RANDARRAY([行数], [列数], [最小], [最大], [整数])
引数意味
行数(省略可)縦に何個並べるか(省略は 1)
列数(省略可)横に何個並べるか(省略は 1)
最小・最大(省略可)乱数の範囲(省略は 0〜1)
整数(省略可)TRUE で整数、FALSE か省略で小数

引数をすべて省略した =RANDARRAY() は、=RAND() と同じく 0 以上 1 未満の小数を 1 つ返します。

1. 0〜1 の乱数を 5 個まとめて作る

行数だけを指定すると、0 以上 1 未満の小数が縦に並びます。

=RANDARRAY(5)
エクセルのRANDARRAY関数で0から1の乱数を5個まとめて縦に並べた画面
エクセルのRANDARRAY関数で0から1の乱数を5個まとめて縦に並べた画面

結果は 5 行の小数になりました。RAND を 5 回コピーしたのと同じです。

2. 1〜100 の整数を 5 行×3 列で作る

列数・最小・最大を指定し、5 つ目を TRUE にすると、整数の乱数の表になります。

=RANDARRAY(5,3,1,100,TRUE)
エクセルのRANDARRAY関数で1から100の整数の乱数を5行3列で作った画面
エクセルのRANDARRAY関数で1から100の整数の乱数を5行3列で作った画面

1 つの式で 15 個の整数が並びました。テストの練習用データを作るときなどに便利です。この方法では同じ数が重なることがあります。重複させたくないときは次の方法を使います。

3. 名前の一覧から重複なしで 3 人を抽選する

名前の一覧を、RANDARRAY で作った乱数の順に並べ替え(SORTBY)、上から 3 人を取り出し(TAKE)ます。並べ替えなので、同じ人が 2 回選ばれることはありません。

=TAKE(SORTBY(A2:A11,RANDARRAY(10)),3)
エクセルのRANDARRAY関数とSORTBYとTAKEで名前の一覧から重複なしで3人を抽選した画面
エクセルのRANDARRAY関数とSORTBYとTAKEで名前の一覧から重複なしで3人を抽選した画面

RANDARRAY の行数(10)は、名前の数にそろえます。人数が変わるときは RANDARRAY(ROWS(A2:A11)) と書くと自動で合います。全員の順番をシャッフルしたいときは TAKE を外して =SORTBY(A2:A11,RANDARRAY(10)) にします。

4. ランダムな日付を作る

日付は数値なので、最小と最大に DATE 関数で日付を入れ、整数にすると、その期間のランダムな日付になります。セルの表示形式は日付にします。

=RANDARRAY(5,1,DATE(2026,1,1),DATE(2026,12,31),TRUE)
エクセルのRANDARRAY関数の最小と最大に日付を入れて2026年のランダムな日付を作った画面
エクセルのRANDARRAY関数の最小と最大に日付を入れて2026年のランダムな日付を作った画面

2026 年 1 月 1 日〜12 月 31 日の日付が 5 個できました。表示形式を設定しないと、46023 のような数値で表示されます。

【実機で検証】RANDARRAY でつまずくところ

エクセルのRANDARRAY関数で範囲や整数や重複なしの抽選や最小と最大を逆にしたときを確かめた画面
エクセルのRANDARRAY関数で範囲や整数や重複なしの抽選や最小と最大を逆にしたときを確かめた画面
ためしたこと式結果
5 行×3 列の行数=ROWS(RANDARRAY(5,3))5
1〜6 の整数 1000 個が 1〜6 におさまるか=LET(x,RANDARRAY(1000,1,1,6,TRUE),AND(MIN(x)>=1,MAX(x)<=6))TRUE
整数 TRUE のとき小数がまざる個数=LET(x,RANDARRAY(1000,1,1,6,TRUE),SUM(--(x<>INT(x))))0
3 人の抽選で重複しない人数=ROWS(UNIQUE(TAKE(SORTBY(RANDARRAY!A2:A11,RANDARRAY(10)),3)))3
最小を最大より大きくすると=RANDARRAY(2,1,10,1)#VALUE!

乱数は毎回変わるので、毎回同じになることだけを確かめました。1〜6 の整数を 1000 個作ると、すべて 1〜6 におさまり(TRUE)、小数がまざる個数は 0 でした。

SORTBY で並べ替えて 3 人を取り出す方法は、UNIQUE で数えても 3 人で、重複しませんでした。

最小(10)を最大(1)より大きくすると #VALUE! になりました。最小と最大の順番に注意します。

よくある質問

乱数が勝手に変わらないように固定するには?

RANDARRAY は、セルを入力したり F9 を押したりするたびに計算し直されます。固定したいときは、結果をコピーして「値の貼り付け」をします。くわしくは 乱数を作る方法で説明しています。

RANDARRAY が使えない(#NAME?)ときは?

Excel 2019 以前では使えません。RAND や RANDBETWEEN を必要な数だけコピーします。

抽選の結果を残したいときは?

抽選したら、すぐに結果を値の貼り付けで固定します。そのままにすると、ほかのセルを入力したときに選び直されてしまいます。

練習用Excelファイル(無料ダウンロード)
この記事の例をまとめた練習ファイルです。
Excelファイル(.xlsx)/登録不要/数式・練習データ入り

あわせて読みたい:関連記事

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次