乔山办公网我们一直在努力
您的位置:乔山办公网 > excel表格制作 > 在excel里生成不重复的随机整数-excel生成重复的随机数,excel如何生成不重复的随机数

在excel里生成不重复的随机整数-excel生成重复的随机数,excel如何生成不重复的随机数

作者:乔山办公网日期:

返回目录:excel表格制作




Sub 不重7a686964616fe4b893e5b19e337复随机数()
Dim i As Long, j As Long
i = Application.InputBox("请输入上限:" & Chr(10) & "输入1000即表示产生1到1000的不重复随机数" & " 以此类推!范围在1--60000之间。" & Chr(10) & "结果产生在新工作表。" & Chr(10) & "如果输入的数超过10000,可能要计算3-5秒,请等候结果显示!", "输入上限", 100, , , , , 1)
If i = False Or i < 1 Then Exit Sub
Randomize
Dim myArr
Worksheets.Add
Application.ScreenUpdating = False
Range("a1") = 1
Range("a1").DataSeries 2, , , 1, i
myArr = Range("a1:b" & i)
For j = 1 To i
a = Int(Rnd() * i) + 1
b = Int(Rnd() * i) + 1
c = myArr(a, 1)
myArr(a, 1) = myArr(b, 1)
myArr(b, 1) = c
DoEvents
Next
Range("a1:a" & i) = myArr
Application.ScreenUpdating = True
End Sub
假设zd产生1到100之间10个不重复随机整数,在A列得到数据,A2公式:(为方便设计公式,从第二行输入公式)
=SMALL(IF(COUNTIF(A$1:A1,ROW($1:$100))=0,ROW($1:$100)),RANDBETWEEN(1,101-ROW(A1)))
数组公式,需要按CTRL+SHIFT+回车,完成公式,下拉10行。

为方便设计公式,数据在A1,公式在C1,如图:


C1公式:

=SMALL(IF(COUNTIF($B1:B1,ROW(INDIRECT("1:"&$A1)))=0,ROW(INDIRECT("1:"&$A1))),RANDBETWEEN(1,$A1-COLUMN(A1)+1))

数组公式,按三键(CTRL+SHIFT+回车)完成公式,右拉到Q1。

相关阅读

关键词不能为空
极力推荐

ppt怎么做_excel表格制作_office365_word文档_365办公网