| === VBA唯一随机数生成器

如果要在Excel中生成随机数,并且所有数字都应唯一(不重复),则可以使用Excel Rand函数生成随机数。

在本文中,我们将学习如何快速创建唯一随机数列表。我们需要执行以下步骤:

单击“开发人员”选项卡。从“代码”组中,选择“ Visual Basic”

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

这样,我们可以在Excel 2013中创建重复的不同随机数列表,而无需重复。

Excel 2016中的另一种方法

RANDBETWEEN函数代表两个数字之间的随机数。

要获得相同的效果,请按照以下步骤操作。

RANDBETWEEN函数返回任意两个数字之间的随机数。

语法:

下:两个数字中的较小者。

=RANDBETWEEN

( bottom, top )

顶部:2个数字中较大的一个。

我们知道电话号码具有以下条件:

。它有10位数字。无法以0开头,因此最小的可能数字为1000000000,最大的可能数字为9999999999,因此请使用以下所示的公式来生成电话号码

使用公式:

1000000000:较小的一个9999999999:较大的一个

=

RANDBETWEEN

( 1000000000 , 9999999999 )

只需输入一次公式,然后使用excel中的下拉选项重复结果即可,如上面的快照所示。

image

如您所见,您可以在Excel中获得随机电话号码。

从给定列表

中选择随机值的另一种方法为此,我们可以选择以下两种方法中的任何一种。一种方法是使用“链接:/查找公式如何在Excel中选择功能[选择功能]”。在此,我们需要将列表中的所有单个值输入到函数中。当列表中的数字值较小时,可以使用此公式。

使用CHOOSE函数的公式:

n:列表value1,value2,value3中的值数,直到value n:列表中的单个值。这些值可以使用单元格引用或直接使用引号或单元格引用来输入。

=

CHOOSE

(

RANDBETWEEN

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

另一种方法是使用“链接:/ lookup-formulas-excel-index-function [INDEX函数]”,其中我们将提供一个随机数作为索引,这将在索引处产生相应的值。

使用INDEX函数的公式:

data:数据数组可以是列表或表。

=INDEX(data,

RANDBETWEEN

(1,ROWS

(data)),col_index)

1:开始索引col_index:列索引以指出表中的列表。

注意:

。如果第一个数字参数(bottom)

,该函数将返回错误。大于第二个数字参数(top)。

。如果函数的参数为​​非数字型,则该函数返回错误。

希望本文有关在Microsoft Excel中使用VBA而不使用重复数字的随机数生成器的文章具有解释性。在此处查找有关生成随机数或日期值的更多文章。如果您喜欢我们的博客,请在Facebook上与您的朋友分享。您也可以在Twitter和Facebook上关注我们。我们希望收到您的来信,请让我们知道我们如何改进,补充或创新我们的工作,并为您做得更好。写信给我们[email protected]

`链接:/wp-content-uploads-2015-05-Download-Random-Number-Generator-without-Repeat-Numbers-xlsm.xls [下载-没有重复编号的随机数生成器-xlsm]

image

相关文章:

链接:/ excel-range-name-all-about-excel-named-ranges-excel-range-name [关于Excel命名范围的所有信息]:带有名称标记的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个数字位数。 from-fixed-options [从固定选项中获取随机数]`:从具有Excel中条件的列表中生成随机数。

获取两个数字之间的随机数:RANDBETWEEN Excel中两个给定数字之间的函数生成器编号。

Excel随机选择:如何从数据集中获取随机样本:将Excel中的随机样本用于此处说明的示例。

如何在Excel中使用RANDBETWEEN函数:Excel RANDBETWEEN函数返回Excel中两个给定数字之间的数字。

热门文章:

`link:/ keyboard-formula-shortcuts-50-excel-shortcuts以提高您的生产力[50 Excel快捷方式以提高您的生产力]“:更快地完成任务。这50个快捷键将使您在Excel上的工作速度更快。

如何在Excel中使用IF函数:Excel中的IF语句检查条件,如果条件为TRUE,则返回一个特定值,如果为FALSE,则返回另一个特定值。

`link:/ formulas-and-functions-introduction-vlookup-function [如何在Excel中使用VLOOKUP函数]’:这是excel中最常用和最受欢迎的函数之一,用于从不同范围查找值和床单。

如何在Excel中使用SUMIF函数:这是另一个仪表板必需的功能。这可以帮助您汇总特定条件下的值。

如何在Excel中使用COUNTIF函数:使用此惊人的函数对带有条件的值进行计数。您无需过滤数据即可计算特定值。 Countif功能对于准备仪表板至关重要。