VBA Distinct Random Number Generator

Excelで乱数を生成する必要があり、すべての数値が一意(繰り返しなし)である必要がある場合は、ExcelRand関数を使用して乱数を生成できます。

この記事では、一意の乱数のリストをすばやく作成する方法を学習します。次の手順に従う必要があります。

[開発者]タブをクリックします。[コード]グループから、[VisualBasic]を選択します

image

  • ワークシートモジュールに次のコードを入力します

Function DistinctRandomNumbers(NumCount As Long, LLimit As Long, ULimit As Long) As Variant

Dim RandColl As Collection, i As Long, varTemp() As Long

DistinctRandomNumbers = False

If NumCount< 1 Then Exit Function

If LLimit>ULimit Then Exit Function

If NumCount> (ULimit - LLimit + 1) Then Exit Function

Set RandColl = New Collection

Randomize

Do

On Error Resume Next

i = CLng(Rnd * (ULimit - LLimit) + LLimit)

RandColl.Addi, CStr(i)

On Error GoTo 0

Loop Until RandColl.Count = NumCount

ReDimvarTemp(1 To NumCount)

For i = 1 ToNumCount

varTemp(i) = RandColl(i)

Next i

Set RandColl = Nothing

DistinctRandomNumbers = varTemp

Erase varTemp

End Function



Sub Test()

Dim varrRandomNumberList As Variant

varrRandomNumberList = DistinctRandomNumbers(50, 1, 100)

Range(Cells(3, 1), Cells(50 + 2, 1)).Value = _

Application.Transpose(varrRandomNumberList)

End Sub

image

  • コードをコピーした後、任意のセルに数式を入力する必要があります

* = DistinctRandomNumbers(50、1、100)

image

このようにして、Excel2013で繰り返しなしで個別の乱数のリストを作成できます。

Excel2016の別の方法

RANDBETWEEN関数は、2つの数値の間の乱数を表します。

同じようにするには、以下の手順に従ってください。

RANDBETWEEN関数は、任意の2つの数値の間の乱数を返します。

構文:

=RANDBETWEEN

( bottom, top )

下:2つの数値のうち小さい方。

上:2つの数字のうち大きい方。

私たちが知っているように、電話番号には次の条件があります:

。 10桁です。 0から始めることはできません。したがって、可能な最小の番号は1000000000になり、可能な最大の番号は999999999になります。したがって、次の式を使用して電話番号を生成します

式を使用してください:

=

RANDBETWEEN

( 1000000000 , 9999999999 )

1000000000:小さい方9999999999:大きい方

image

上記のスナップショットに示すように、数式を1回入力し、Excelのドラッグダウンオプションを使用して結果を繰り返すだけです。

ご覧のとおり、Excelでランダムな電話番号を取得できます。

与えられたリストからランダムな値を選ぶ別の方法

このために、以下の2つの方法のいずれかを選択できます。 1つの方法は、 `link:/ lookup-formulas-how-to-use-the-choose-function-in-excel [CHOOSEfunction]`を使用することです。ここでは、リストから関数にすべての個々の値を入力する必要があります。この式は、リスト内の数値が少ない場合に使用できます。

CHOOSE関数を使用した式:

=

CHOOSE

(

RANDBETWEEN

( 1 , n) , “value1” , “value2” , “value3″,,,”value n” )

n:リストvalue1、value2、value3の値の数、値n:リストの個々の値。これらの値は、セル参照を使用するか、引用符で直接使用するか、セル参照を使用して入力できます。

もう1つの方法は、 `link:/ lookup-formulas-excel-index-function [INDEX function]`を使用することです。ここでは、インデックスとして乱数を入力し、インデックスで対応する値を取得します。

INDEX関数を使用した式:

=INDEX(data,

RANDBETWEEN

(1,ROWS

(data)),col_index)

data:データ配列はリストまたはテーブルにすることができます。

1:開始インデックスcol_index:テーブル内のリストを指す列インデックス。

メモ:

。最初の数値引数(下)が

の場合、関数はエラーを返します。 2番目の数値引数(top)よりも大きいです。

。関数の引数が数値以外の場合、関数はエラーを返します。

MicrosoftExcelでVBAを使用した繰り返し番号のない乱数ジェネレータに関するこの記事が説明的であることを願っています。乱数または日付値の生成に関するその他の記事は、こちらをご覧ください。あなたが私たちのブログが好きなら、Facebookであなたのfristartsとそれを共有してください。また、TwitterやFacebookでフォローすることもできます。皆様からのご意見をお待ちしております。私たちの仕事を改善、補完、革新し、より良いものにする方法をお知らせください。 [email protected]までご連絡ください

image

`link:/wp-content-uploads-2015-05-Download-Random-Number-Generator-without-Repeat-Numbers-xlsm.xls [ダウンロード-繰り返し番号のない乱数ジェネレーター-xlsm]

関連記事:

link:/ excel-range-name-all-about-excel-named-ranges-excel-range-name [All About Excel Named Ranges]:名前でタグ付けされたExcel範囲は、Excel式で簡単に使用できます。ここでそれについてすべて学びます。

link:/ excel-generals-relative-and-absolute-reference-in-excel [Excelの相対参照と絶対参照]:Excelで効果的に作業するには、Excelの相対参照と絶対参照を理解することが非常に重要です。セルと範囲の相対的および絶対的な参照。

link:/ Tips-random-phone-numbers-in-microsoft-excel [Generate Random Phone Numbers]:ExcelのRANDBETWEEN式を使用してランダムな10個の数字を生成します `link:/ mathematical-functions-get-random-number- from-fixed-options [固定オプションから乱数を取得] `:Excelの基準を持つリストから乱数を生成します。

link:/ excel-formula-and-function-excel-randbetween-function [2つの数値の間の乱数を取得]:Excelで指定された2つの数値の間のRANDBETWEEN関数ジェネレーター番号。

link:/ excel-formula-and-function-excel-random-selection [Excelランダム選択:データセットからランダムサンプルを取得する方法]:ここで説明する例については、Excelのランダムサンプルを使用してください。

link:/ excel-formula-and-function-excel-randbetween-function-2 [ExcelでのRANDBETWEEN関数の使用方法]:Excel RANDBETWEEN関数は、Excelで指定された2つの数値の間の数値を返します。

人気のある記事:

link:/ keyboard-formula-shortcuts-50-excel-shortcuts-to-increase-your-productivity [生産性を向上させるための50のExcelショートカット]:タスクをより速くします。これらの50のショートカットにより、Excelでの作業がさらに高速になります。

link:/ Tips-if-condition-in-excel [ExcelでIF関数を使用する方法]:ExcelのIFステートメントは、条件をチェックし、条件がTRUEの場合は特定の値を返し、FALSEの場合は別の特定の値を返します。 。

link:/ forms-and-functions-introduction-of-vlookup-function [ExcelでVLOOKUP関数を使用する方法]:これは、さまざまな範囲から値を検索するために使用される、Excelで最も使用され人気のある関数の1つです。とシート。

link:/ excel-formula-and-function-excel-sumif-function [ExcelでSUMIF関数を使用する方法]:これはもう1つのダッシュボードの必須関数です。これは、特定の条件で値を合計するのに役立ちます。

link:/ Tips-countif-in-microsoft-excel [ExcelでCOUNTIF関数を使用する方法]:この驚くべき関数を使用して条件付きの値をカウントします。特定の値をカウントするためにデータをフィルタリングする必要はありません。ダッシュボードを準備するには、Countif関数が不可欠です。