我想在excel表格里弄个随机号码生成,要数字不重复 能帮忙给个公式不?
答案:4 悬赏:0 手机版
解决时间 2021-04-08 22:10
- 提问者网友:ミ烙印ゝ
- 2021-04-08 02:45
我想在excel表格里弄个随机号码生成,要数字不重复 能帮忙给个公式不?
最佳答案
- 五星知识达人网友:詩光轨車
- 2021-04-08 02:58
把问题作为内容(邮件主题一定要包含“excel”)、excel样表文件(请特别注意:要03版的,把现状和目标效果表示出来)作为附件发来看下 yqch134@163.com
全部回答
- 1楼网友:大漠
- 2021-04-08 04:50
具体一点,号码几位数?
再看看别人怎么说的。
- 2楼网友:躲不过心动
- 2021-04-08 04:19
经常看到有朋友需要生成不重复的随机数,经过一晚上奋战,终于搞出来了,分享一下,请大家斧正。
更改d1到d3单元格可以修改相关参数
Sub CreateRND()
Dim arr() As Integer '定义数组
ReDim arr(range("d3").Value) '更改数组大小
Dim min As Integer '定义随机数的最小值
Dim max As Integer '定义随机数的最大值
Dim flag As Boolean '定义标志变量,用来判断是否有重复值
max = range("d2").Value '将d2单元格的数值赋值给最大值
min = range("d1").Value '将d1单元格的数值赋值给最小值
If (max - min + 1 < range("d3").Value) Then '如果最大值和最小值的差小于d3单元格的数值就什么也不做
Exit Sub
End If
Randomize (Now()) '用当前时间生成随机数种子
For i = 0 To range("d3").Value '循环生成随机数
Do
arr(i) = Rnd() * (max - min) + min '生成随机数
flag = False
For j = 0 To (i - 1) '循环判断当前的随机数是否和前面生成的随机数相同,如果相同就重新生成
If (arr(i) = arr(j)) Then
flag = True
End If
Next
Loop While flag
Next
Columns("A:A").ClearContents
range("a1").Resize(range("d3").Value) = Application.Transpose(arr) '输出结果
End Sub
- 3楼网友:污到你湿
- 2021-04-08 03:19
A1中空着,A2中输入
=SMALL(IF(COUNTIF(A$1:A1,ROW($1:$24))=0,ROW($1:$24)),1+INT((24-ROW(A1))*RAND()))
同时按下CTRL+SHIFT+回车,输入数组公式,用自动填充柄将A2公式下拉到A25,不断按按下F9,看效果。 我举得例子是1~24之间的,当然,你不想要这可以修改,row(数字)
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯