乔山办公网我们一直在努力
您的位置:乔山办公网 > excel表格制作 > <em>excel</em>中从1-100中随机生成10个不重复的整数,重复十...-excel

<em>excel</em>中从1-100中随机生成10个不重复的整数,重复十...-excel

作者:乔山办公网日期:

返回目录:excel表格制作


如图,通常将要的不重复的数列出来(如第一列的数),再在另一列用=rand()产生随机数,对随机数排序,则所需要的数是也就随机了,哈哈。当然,如果您不要这么多的数,您排序后从左列取几个就可以了。

供参考,祝顺利。




用VBA编程可以实现。其方法有多种,一是字典功能,凡是重复的无法插入字典。其缺陷是程序运行的时间不确定,发生重复就继续生成随机数,直到没有重复为止。另一种是第一次生成1~100的随机数,将得到的随机数取走;再生成1~99的随机数,。。。这样循环到1,就完成了题目要求。

我们采用第二种方法做成如下代码:

Sub 随机数()

Dim mYarr(1 To 100, 1 To 2)

Dim Tarr(1 To 100, 1 To 2) '存放随机生成的数

Dim I, J, K, L As Integer

'读取原始数据

I = 2

Do While Cells(I, 1) > 0

mYarr(I - 1, 1) = Cells(I, 1)

mYarr(I - 1, 2) = Cells(I, 2)

I = I + 1

Loop

I = I - 2

L = 1

For K = I To 1 Step -1

Randomize

J = Int((Rnd * K) + 1)

Tarr(L, 1) = L

Tarr(L, 2) = mYarr(J, 2)

'将数值自J+1个开始向上移动一格

    For M = J To I - 1

        mYarr(M, 1) = mYarr(M + 1, 1)

        mYarr(M, 2) = mYarr(M + 1, 2)

    

    Next M

L = L + 1

Next K

'输出随机整数

For J = 1 To I

  Cells(J + 1, 5) = Tarr(J, 1)

  Cells(J + 1, 6) = Tarr(J, 2)

Next J

End Sub

该宏

第一步:将第1、2列数据读入MYARR数组

第二步e799bee5baa6e79fa5e98193e58685e5aeb9332:随机生成随机数,将该随机数对应的数值移入TARR数组(目标数组)

第三步:将目标数组TARR数值输出到第5、6列。运行结果如图:

可以看到G列检查是否有重复列,结果是没有。



1、利用一个辅助列比如C3到C12,在C3输入公式:=rand()向下拉到C12
2、然后在B3利用排序函数得到1~10的不重复数字,B3输入公式:=RANK(C3,$C$3:$C$12)
向下拉到B12。
如果你觉得C列碍眼,可以把C列隐藏,也可以先复制B列,再在B列选择性粘贴/数值/确定,就可以把C列删除了。甚至还有一个更简单的办法:把辅助列建在其他工作表,比如在Sheet2的C3(也可以其他单元格,但后面公式要相应更改)输入公式:=rand()向下拉到C12,然后在你的表格Sheet1的B3输入公式:=RANK(Sheet2!C3,Sheet2!$C$3:$C$12)向下拉到B12。

相关阅读

  • <em>EXCEL</em>取<em>随机</em>的<em>

  • 乔山办公网excel表格制作
  • 在2003以前版本中,百若要生成 a 与 b 之间的随机实数,请使用: INT(RAND()*(b-a)+a)如果要度使用函数 RAND 生成一随机数,并且使之不知随单元格计算而改变,可以道在编辑栏中输入“=RAN
关键词不能为空
极力推荐

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