重複しない整数乱数の生成方法
Excelでは、特定の範囲内で重複しない整数乱数を簡単に生成することができます。この方法は、データ分析やテストデータの作成に非常に役立ちます。本記事では、SEQUENCE関数と RANDARRAY関数を組み合わせて、1つの式で重複しない整数乱数を生成する方法を詳しく解説します。
基本的な考え方
この方法の基本的な考え方は、まず1から指定した数までの連続する整数を生成し、それを乱数に基づいて並べ替えることです。このために、以下の関数を使用します:
- SEQUENCE関数:指定した数までの連続した整数を生成します。
- RANDARRAY関数:乱数の配列を生成します。
- SORTBY関数:生成した整数を乱数に基づいて並べ替えます。
完成した式
以下の式を使用して、重複しない整数乱数を生成します。この例では、1から100までの整数乱数を生成します:
=SORTBY(SEQUENCE(100), RANDARRAY(100))
51から75までの乱数ならば、生成する個数の25をセットし、開始値として末尾に+50を付け加えればよいでしょう。
=SORTBY(SEQUENCE(25), RANDARRAY(25))+50
つまり「重複しない整数乱数の生成」を実現するには以下の式となります。式の論理や構造については次の節で解説します。この計算式の最小値は「1」です。最小値を「0」にするなら式から1を引いてください。
まとめると以下のようになります。「生成する個数」欄には同じ数字をセットします。
=SORTBY(SEQUENCE(生成する個数), RANDARRAY(生成する個数))+開始値
式の構造と説明
それぞれの関数の役割と式の構造について詳しく説明します。
SEQUENCE関数
SEQUENCE関数は、指定された範囲内の連続する数値の配列を生成します。この例では、1から100までの連続した整数を生成します。
=SEQUENCE(100)
この関数の結果は次のようになります。
[1, 2, 3, ..., 100]
RANDARRAY関数
RANDARRAY関数は、指定された範囲内のランダムな数値の配列を生成します。この例では、0から1の間の100個の乱数を生成します。
=RANDARRAY(100)
この関数の結果は次のようになります。
[0.123, 0.987, 0.456, ..., 0.678]
SORTBY関数
SORTBY関数は、指定された配列を別の配列の値に基づいて並べ替えます。この例では、生成した整数を対応する乱数の順序に基づいて並べ替えます。
=SORTBY(SEQUENCE(100), RANDARRAY(100))
この関数の結果は次のようになります。
[34, 87, 23, ..., 56, 1]
つまり、1から100までの整数がランダムに並べ替えられます。
応用例
この方法は、任意の数の重複しない整数乱数を生成するために応用することができます。たとえば、1から50までの乱数を生成するには、以下の式を使用します:
=SORTBY(SEQUENCE(50), RANDARRAY(50))
また、A1に入力されているだけの整数乱数を生成するには、以下の式を使用します:
=SORTBY(SEQUENCE(A1), RANDARRAY(A1))
まとめ
Excelの SEQUENCE関数と RANDARRAY関数を組み合わせることで、簡単に重複しない整数乱数を生成することができます。この方法は非常にシンプルで効率的です。データ分析やテストデータの作成など、さまざまなシナリオで活用できるでしょう。ぜひ試してみてください。
コメント