永发信息网

我想在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(数字)
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯