利用一个辅助列比如C3到C12,在C3输入公式:=rand()向下拉到C12,然后在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。
公式法:
我们以生成1-10范围内的随机数字为例,讲述方法。 首先,在A2单元格中输入公式:=SMALL(IF(COUNTIF($A$1:A1,ROW($1:$11))=0,ROW($1:$11)),INT(RAND()*(11-ROW(A1))+1)) 然后按下Ctrl+Shift+Enter三键结束数组公式;
然后,下拉填充公式到A12单元格,也就是填充11个单元格,为什么要填充11个呢,我们明明只要10个数字?这是因为,最后一个数字是不会变化的,所以呢,要生成10个随机数,需要填充11个单元格,同样的生成11个随机数的话,要填充12个单元格,除此之外,公式中的11还要改成12。
生成随机数后,每按下一次F9(或者其他单元格进行一次计算),随机数就会刷新一次,重新生成一组随机;
Small函数的第二个参数,也就是从这个序列中取第几个最小值,在得到的数字中,利用随机函数rand和row函数,实现在这有个个数中随机抽取一个数字,从而得到排序中这个数字顺序的一个数字。通过这样一个数组公式,就实现了生成一组不重复的随机数字。
这样B1:B10就是10个不重复的整数。
可以修改$10为更大的数并拉更多行,得到更多不重复的数字
1-35的可以这么写,但是不重复的,excel好像不行。
先在 k2中写入 =INT(RAND()*35+1)
然后填充到 as2
然后拉动填充柄,以行为单位填充到你需要的那一行位置。