重複のない乱数リストを作成するには? RANDARRAYとUNIQUEを活用したデータ生成の方法 | EXCELトピックス

スポンサーリンク
スポンサーリンク

重複のない乱数リストを作成するには?

Excelで乱数を生成する際、重複のないユニークな値のリストを作成したいことがあります。特に、抽選やランダムなデータセットの作成など、ユニークな数値が求められる場面で便利です。

本記事では、RANDARRAY関数とUNIQUE関数を活用して、重複のない乱数リストを作成する方法を解説します。

RANDARRAY関数とは?

RANDARRAY関数は、Excel 365およびExcel 2019以降で利用可能な関数で、指定した範囲内でランダムな数値を生成できます。

基本構文

=RANDARRAY(行数, 列数, 最小値, 最大値, 整数指定)

引数の詳細:

  • 行数: 生成する行の数
  • 列数: 生成する列の数
  • 最小値: 生成される乱数の最小値
  • 最大値: 生成される乱数の最大値
  • 整数指定: TRUE(整数)またはFALSE(小数)

UNIQUE関数とは?

UNIQUE関数は、指定した範囲内のユニークな値を抽出する関数です。

基本構文

=UNIQUE(範囲)

この関数を使うことで、重複のないリストを自動的に取得できます。

RANDARRAYとUNIQUEを組み合わせた方法

重複のない乱数を作成するには、RANDARRAYで乱数を生成し、それをUNIQUE関数でフィルタリングします。

Excelでの計算例

A
1 =UNIQUE(RANDARRAY(10, 1, 1, 100, TRUE))
2 23
3 87
4 12
5 56
6 91
7 38
8 64
9 75
10 49

数式の解説

=UNIQUE(RANDARRAY(10, 1, 1, 100, TRUE))
  • RANDARRAY(10, 1, 1, 100, TRUE) → 1から100の範囲で10個のランダムな整数を生成
  • UNIQUE(...) → 生成された乱数から重複を除外

計算結果の例

  • 23, 87, 12, 56, 91, 38, 64, 75, 49

この方法を使用すると、一度にランダムなユニーク値を作成できますが、RANDARRAYで重複した数値が発生すると、UNIQUEがそれを取り除くため、10個未満のデータしか取得できない可能性があります。

より確実にユニークな乱数を生成する方法

確実にユニークな乱数を取得するには、SEQUENCE関数とSORTBY関数を組み合わせます。

数式

=INDEX(SORTBY(SEQUENCE(100,1,1,1), RANDARRAY(100)), SEQUENCE(10,1,1,1))

Excelでの計算例

A
1 =INDEX(SORTBY(SEQUENCE(100,1,1,1), RANDARRAY(100)), SEQUENCE(10,1,1,1))
2 7
3 42
4 19
5 95
6 53
7 84
8 21
9 68
10 30

数式の解説

  • SEQUENCE(100,1,1,1) → 1から100までの連続した数値を生成
  • RANDARRAY(100) → 各数値に対するランダムな並び替えキーを生成
  • SORTBY(..., RANDARRAY(100)) → 生成した数値をランダムに並べ替え
  • INDEX(..., SEQUENCE(10,1,1,1)) → 上位10個を取得

計算結果の例

  • 7, 42, 19, 95, 53, 84, 21, 68, 30

まとめ

Excelで重複のない乱数リストを作成するには、RANDARRAYUNIQUEを活用するのが便利ですが、確実にユニークな値を取得するにはSORTBYINDEXを活用する方法が最適です。

  • 基本的なユニーク乱数の生成: =UNIQUE(RANDARRAY(行数, 1, 最小値, 最大値, TRUE))
  • 確実にユニークな乱数を取得: =INDEX(SORTBY(SEQUENCE(100,1,1,1), RANDARRAY(100)), SEQUENCE(10,1,1,1))

この方法を活用すれば、乱数の生成がより柔軟に行えます。

使用した関数について

RANDARRAY関数でランダムな数値配列を作成する方法をわかりやすく解説
RANDARRAY関数についてRANDARRAYの概要ランダムな数値配列を生成Excel関数=RANDARRAY( 行数, 列数, 最小値, 最大値, 整数 )概要 RANDARRAY関数は、指定された範囲内でランダムな数値の配列を生成します。 行数と列数を指定して、ランダムな数値の配列を生成します。 最小値と最大値の...
UNIQUEで重複するデータをまとめる方法と代用方法や重複数のカウントについてわかりやすく解説
UNIQUE関数についてUNIQUEの概要重複するデータをまとめるExcel関数=UNIQUE( 範囲 , 検索方向 , 回数論理値 )概要 重複するデータをまとめる範囲内の重複を除去して一意の値のみを返し、自動的にソートされる。対応バージョン:365 2021 まとめるのであって、求めているわけではない 方向は、TR...
SEQUENCE関数で開始値から連続する数値を配列として作成する方法をわかりやすく解説
SEQUENCE関数についてSEQUENCE関数の概要連続する数値の配列を生成Excel関数=SEQUENCE(行数, 列数, 開始値, 増加量)概要 SEQUENCE関数は、指定された行数や列数に基づいて連続した数値を生成する関数です。開始値や増加量を指定して柔軟な配列を作成できます。 行数や列数を指定し、2次元配列...
SORTBY関数で指定した範囲について並び替えを行う方法をわかりやすく解説
SORTBY関数についてSORTBY関数の概要指定した基準でデータを並べ替えるExcel関数=SORTBY(範囲, 基準列範囲1, 並べ替え順序1, )概要 SORTBY関数は、指定した基準列範囲と並べ替え順序に基づいて、データを並べ替えます。複数の基準を指定することが可能で、柔軟性の高い並べ替えが行えます。 複数の基...