Excelで繰り返しのない乱数発生器(9つの方法)

  • これを共有
Hugh West

特定の目的(電話番号、抽選、統計的サンプリングなど)のために、繰り返しのない乱数を生成する必要があります。 しかし、一般的なExcelの計算式を使用すると、繰り返しのある乱数が得られる場合があります。 今回は、Excelで繰り返しのない乱数生成として9つの方法を適切な説明とともに紹介します。

練習用ワークブックをダウンロードする

繰り返しのない乱数発生器.xlsx

Excelで乱数ジェネレータを繰り返しなく実装する9つの方法

最初の4つの方法は、Excel 365で新しくリリースされた配列関数を使用して、繰り返しなしで乱数を生成する方法です。 しかし、残りの方法は、特に以前のバージョンのExcelを使用している方にとって、すべてのExcelバージョンに適しています。 結論から言うと、9つの方法は、次のように使用できます。 エクセル乱数発生器 をリピートのない状態で

メソッドに入りましょう。

1.RANDARRAY関数を使う

まず最初に、「Select」「Select」「Select」「Select」「Select」「Select」の使い方を確認します。 ランダレイ 関数で乱数を発生させることができます。

があります。 ランダレイ Excel 365 で導入された関数で、乱数のリストを配列形式で得ることができます。 また、この関数を使って、値の重複がない乱数を得ることもあります。

例えば、1〜200までの繰り返しなしの乱数を20個作りたい。

このような条件下では、以下のような式になります。

=RANDARRAY(10,2,1,200,TRUE)

これです。 10 は行数です。 2 は列の数である。 1 は最小値です。 200 が最大値となり、最後に は整数の場合です。

しかし、この方法は、大きな数値範囲から少数の数値を求める場合(例えば、1から200/500までの10/20の数値を生成する)に有効です。 それ以外の場合は、重複した数値を生成してしまいます。

続きを読む 乱数を生成するExcelの計算式(5例)

2.UNIQUE & RANDARRAY関数の利用

第二に、アプリケーションの UNIQUE 関数と同様に ランダレイ 関数を使用します。

があります。 UNIQUE Excel 365、Excel 2021のバージョンで利用できる関数で、与えられたデータセットまたはセル範囲からユニークな値のリストを返します。 そこで、2つの関数を利用して、繰り返しのない乱数を生成することができます。

結合式は次のようになります。

=unique(randarray(10,2,1,100,true))

これです。 10 は行数です。 2 は列の数である。 1 は最小値です。 200 が最大値となり、最後に は整数の場合です。

⧬ 上の式で、私は randarray(10,2,1,100,true) を配列として、1から100までの20個の乱数を発生させます。 その後 UNIQUE 関数は生成された乱数から一意な値を返します。

3.SORTBY関数とSEQUENCE関数の応用で、繰り返しのない乱数を生成する

3つ目は、いくつかの動的配列関数の組み合わせを利用することである。

があります。 SEQUENCE Excel 365 & Excel 2021バージョンのみで利用可能な関数で、連番のリスト(配列)を作成する。

例えば、1から10までの数字のリストを得たい場合、次の式を使う必要があります。

=SEQUENCE(10)

これです。 10 は行数です。

次に ソートビ は,値の配列を別の値の配列で昇順あるいは降順にソートします。 したがって,この関数を SEQUENCE & ランダレイ 関数を使って、繰り返しのない10個の乱数を作成します。

=sortby(sequence(10),randarray(10))

⧬ 式を説明しながら、次のように言うことができます。 ランダレイ(10) は10個の乱数のリストを生成します。 SEQUENCE(10) 構文は、10個の数字のリスト(連番)を生成します。 そして SEQUENCE(10) ランダレイ(10) として使用されます。 勢揃い 論と by_array(バイアレイ の引数を指定します。 ソートビ 関数で,連番をランダムな順序で並べ替えたいからです.

続きを読む エクセルVBAで乱数を生成する方法(4例)

4.INDEX関数を繰り返しなしの乱数発生器として利用する。

もし、繰り返しのない乱数のリストを作りたいのであれば、次のようになります。 INDEX 関数と、先に述べた ランダレイ , SEQUENCE & UNIQUE また、4種類の乱数を生成することができます。

4.1. 整数乱数の生成

1から100までの乱数を繰り返しなく10個生成する必要があるときは、次の式を使うだけです。

=index(unique(randarray(10, 1, 1, 100, true))), sequence(10))

⧬ 式を説明しながら、次のように言うことができます。 SEQUENCE(10) は10個の連番を作成します。 乱数配列(10, 1, 1, 100, true) は、1から100までの10個の乱数を生成する。 なぜなら は整数の生成に使われます。 その後 UNIQUE は,生成された数値から繰り返しの値を削除します。 最後に INDEX 関数が指示する10個の乱数を返します。 SEQUENCE その場合、出力 UNIQUE 関数は配列として使用されます。

4.2. 乱数10進数の生成

繰り返しのない10進数の乱数を10個生成したい場合は、以下の式を使用するとよいでしょう。

=index(unique(randarray(10, 1, 1, 100, false))), sequence(10))

これです。 10 は行数です。 2 は列の数である。 1 は最小値です。 100 が最大値となり、最後に ファルス は10進数を生成するためのものです。

4.3. 整数値の範囲の生成

同様に、以下の式で乱数整数値の範囲を生成することもできます。

=index(unique(randarray(20, 1, 1, 200, true))), sequence(10,2))

これです。 20 は行数です。 1 は列の数である。 1 は最小値です。 200 が最大値となり、最後に は整数を生成するためのものです。

4.4. 10進数の乱数範囲を生成する

1から100までの10進数の乱数範囲を生成する場合は、以下の式を使用します。

=index(unique(randarray(20, 1, 1, 100)), sequence(10, 2))

これです。 20 は行数です。 1 は列の数である。 1 は最小値です。 200 が最大値となり、最後に FALSE は10進数の生成用です。

続きを読む Excelで小数を含む乱数を生成する(3つの方法)

5.乱数生成のためのRAND関数とRANDBETWEEN関数

があります。 ランド を使うと,0から1の間の数値が生成されます.幸い,重複した値が生成される可能性はほとんどありません. ランド 100000回の使用回数を超えると、繰り返し値が発生する可能性があります。

そこで、ユニークな10進数を生成したい場合は、以下の式を使用します。

=RAND()

さらに ランドビュートゥエン は、与えられた2つの数値の間の整数を返します。

例えば、1〜100の整数を求める場合は、以下の式で求めることができます。

=randbetween(1,100)

これです。 1 論と 100 トップ の議論になります。

を使用する場合、残念ながら値の繰り返しが発生する可能性が高いです。 ランドビュートゥエン 関数を使用することができます。 複製を削除する オプションを指定します。 データ のタブをクリックします。 データツール リボンでセル範囲を選択した後

続きを読む エクセルで重複のない乱数を生成する方法(7つの方法)

類似の読み物

  • Excelで0から1の間の乱数を生成する(2つの方法)
  • Excelで5桁の乱数ジェネレータ (7例)
  • Excelで4桁の乱数ジェネレータ(8例)
  • Excelでリストから乱数を生成する(4つの方法)
  • Excelの範囲指定による乱数発生機能 (8例)

6.乱数発生器としてのRAND & RANK関数の適用

さらに ランク 関数で、与えられた数値のリストに基づいて、数値の相対的な大きさを返します。 その前に、ランダムな10進数のリストを ランド 関数を使用します。

=rank(b5,$b$5:$b$15)です。

これです。 B5 は10進数のスタートセルであり B5:B15 は10進数用のセル範囲です。

続きを読む Excel VBA:重複のない乱数発生器(4例)

7.RANK.EQとCOUNTIF関数の組み合わせの活用

例えば、10〜50までの繰り返しのない乱数を生成したいとします。

そのような場合、以下のような組み合わせで使用することがあります。 ランク.EQ & COUNTIF 関数を使って、繰り返しのない乱数を生成します。 その前に、10 から 50 までの数字のリストを ランドビュートゥエン 関数を使用します。

ここで、以下の式を使ってみてください。

=9+rank.eq(b5、$b$5:$b$15) + countif($b$5:b5, b5) - 1

これです。 B5 は乱数の開始セルであり B5:B15 は10進数用のセル範囲です。

⧬ 式を説明しながら、その COUNTIF 関数は,リスト内の各乱数をカウントしています。 また ランク.EQ は各乱数の相対位置(ランク)を返し、最後に 9 というのは、10から始まる数を生成したいからです。

8.ExcelでLARGE & MATCH関数を乱数発生器として使用する。

の組み合わせで、繰り返しのない乱数整数を生成することも可能です。 LARGE MATCH の機能です。 LARGE 関数は、与えられたセル範囲またはデータセット内のk番目の最大値を返します。

=large($b$5:$b$15,row(b1))です。

これです。 B$5:$B$15 を使用して求めたランダムな10進数のセル範囲です。 ランド 関数を使用します。 列(B1) は、行番号1を指します。

次に、作成された最大値の位置を以下の式で求める必要がある。

=match(c5,$b$5:$b$15,0)

これです。 C5 は最大数のスタートセルである。 B$5:$B$15 はランダムな10進数のセル範囲であり、最後に 0 は完全一致を取得するためのものです。

9.Excelで乱数発生器としてのAnalysis Toolpak

最後に、Excelの数式を使う代わりに、繰り返しのない乱数を生成する必要がある場合は、次のようにします。 アドイン のExcelを使用しています。

を使用する場合 アドイン は、以下の手順で行ってください。

⇰に移動します。 ファイル > オプション .

をクリックする ⇑。 アドイン を選択し エクセルアドイン をドロップダウン・リストから選び、オプションを選択します。 行く .

⇰ すると、次のようなダイアログボックスが表示されますので、その前のボックスにチェックを入れてください。 解析ツールパック を押してください。 よっしゃー .

⇄ では、次のように選択します。 データ分析 オプションを指定します。 データ のタブをクリックします。 分析 リボン

⇰ 次に、オプションを選択します。 乱数発生 を押してください。 よっしゃー .

⇰ すぐに、以下のダイアログボックスが表示されます。

⇰ そして、希望する出力に応じたオプションを選択します。

Ȑ 例えば、私が選択したのは 変数数 乱数数 かわりに 4 & 10 を持つ数値のリストをそれぞれ生成します。 10 列と 4 の欄があります。

⇄ もっと重要なことは、私たちが選択しなければならないことです。 流通 かわりに ユニフォーム というのは、値の繰り返しを避けたいからです。

⇰後ほど。 10間 30 は、範囲内の数字を見つけたい、という意味です。

⇄ 最後に 出力範囲

すべての作業を終えると、次のような出力が得られます。

続きを読む データ解析ツールとExcelの関数による乱数発生器

よくあるエラー

しかし、上記の数式をExcelで繰り返しなしの乱数生成器として使用する際、以下のようなエラーに遭遇することがあります。

エラーの名称 発生時期
カルク!#CALC もし UNIQUE 関数は一意な値を抽出することができません。
#SPILL! が存在する流出範囲に何らかの値がある場合、その値を削除する。 UNIQUE 関数はそのリストを返します。
#VALUE! があります。 ランダレイ 関数は、最小値が最大値より大きい場合に発生します。

結論

以上、Excelの乱数発生器として、繰り返しのない方法をご紹介しました。 あとは、お好みで方法を選んでください。 この記事が、あなたのExcel Journeyを楽にすることを願っています。

Hugh West は、業界で 10 年以上の経験を持つ、非常に経験豊富な Excel トレーナー兼アナリストです。彼は会計と財務の学士号と経営管理の修士号を取得しています。ヒューは教えることに情熱を持っており、理解しやすい独自の教育アプローチを開発しました。彼の Excel に関する専門知識は、世界中の何千人もの学生や専門家がスキルを向上させ、キャリアで優れた成果を上げるのに役立ってきました。 Hugh はブログを通じて知識を世界に共有し、個人や企業が潜在能力を最大限に発揮できるよう無料の Excel チュートリアルとオンライン トレーニングを提供しています。