文档库 最新最全的文档下载
当前位置:文档库 › excel随机不重复分组取数

excel随机不重复分组取数

2016001 6 34 8 41 32 11 47 2016-01-02
2016002 18 45 2 5 7 30 11 2016-01-05
2016003 29 11 9 47 43 6 8 2016-01-07
2016004 15 8 30 45 18 4 38 2016-01-10
2016005 8 13 44 45 35 15 47 2016-01-12
2016006 23 49 32 2 1 10 26 2016-01-14
2016007 2 6 1 43 37 40 24 2016-01-16
2016008 39 25 30 8 20 18 13 2016-01-19
2016009 33 40 47 2 12 45 9 2016-01-21
2016010 14 32 23 8 12 7 5 2016-01-23
2016011 9 40 5 27 22 26 13 2016-01-26
2016012 30 48 8 42 34 20 36 2016-01-28
2016013 1 39 29 32 44 5 4 2016-01-30
2016014 36 28 34 18 33 30 2 2016-02-02
2016015 7 38 13 35 15 45 32 2016-02-04
2016016 11 21 13 19 15 29 41 2016-02-07
2016017 4 35 3 30 47 17 10 2016-02-11
2016018 43 8 36 14 29 24 31 2016-02-13
2016019 42 43 22 34 21 18 24 2016-02-16
2016020 20 41 38 13 45 39 46 2016-02-18
2016021 47 49 39 20 44 12 45 2016-02-20
2016022 15 27 45 44 9 24 47 2016-02-23
2016023 3 47 22 45 24 6 7 2016-02-25
2016024 27 6 11 20 44 9 42 2016-02-27
2016025 30 21 11 16 19 33 31 2016-03-01
2016026 16 5 45 7 2 1 33 2016-03-03
2016027 29 48 49 17 26 32 40 2016-03-05
2016028 16 34 4 30 3 39 14 2016-03-08
2016029 9 48 30 33 24 14 43 2016-03-10
2016030 41 23 49 36 33 3 2 2016-03-12
2016031 1 6 41 19 28 26 39 2016-03-15
2016032 8 16 15 3 17 38 35 2016-03-17
2016033 25 23 39 35 42 43 14 2016-03-19
2016034 5 18 49 24 10 27 39 2016-03-22
2016035 21 35 18 25 16 46 13 2016-03-24
2016036 38 47 24 44 17 46 27 2016-03-26
2016037 22 9 31 13 12 30 28 2016-03-29
2016038 34 6 29 45 36 4 47 2016-04-02
2016039 10 43 21 35 30 4 7 2016-04-05
2016040 8 45 34 21 25 32 31 2016-04-07
2016041 43 6 3 38 44 13 31 2016-04-09
2016042 33 48 21 46 28 25 10 2016-04-12
2016043 46 27 25 21 44 14 3 2016-04-14
2016044 28 35 45 46 24 16 38 2016-04-17
2016045 48 5 30 45 34 8 3 2016-04-19
2016046 3 15 5 39 41 14 21 2016-04-21
2016047 46 2 16 35 10 47 49 2016-04-23
2016048 25 28 3 45 1 27 12 2016-04-26
2016049 44 28 20 49 11 29 40 2016-04-30
2016050 36 27 12 7 15 6 29 2016-05-05
2016051 40 20 26 28 32 45 43 2016-05-10
2016052 27 49 12 20 4 19 21 2016-05-12
2016053 25 2 46 11 28 36 42 2016-05-15
2016054 23 24 19 40 1 32 35 2016-05-17
2016055 37 2 20 39 8 24 18 2016-05-19
2016056 44 23 25 6 13 48 11 2016-05-21
2016057 35 34 33 14 18 46 42 2016-05-24
2016058 36 15 46 48 9 38 22 2016-05-26
2016059 21 36 23 33 42 32 20


==========================
生成随机数字
(1)生成随机数比较简单,=rand()即可生成0-1之间的随机数;
(2)如果要是整数,就用=int(rand()%10),表示0至9的整数,以此类推;
(3)如果要生成a与b之间的随机实数,就用=rand()*(b-a)+a,如果是要整数就用=int(rand()*(b-a))+a;稍微扩充一下,就能产生固定位数的整数了。
注意:如果要使用函数rand()生成一随机数,并且使之不随单元格计算而改变,可以在编辑栏中输入“=rand()”,保持编辑状态,然后按F9,将公式永久性地改为随机数。不过,这样只能一个一

个的永久性更改,如果数字比较多,也可以全部选择之后,另外选择一个合适的位置粘贴,粘贴的方法是点击右键,选择“选择性粘贴”,然后选择“数值”,即可将之前复制的随机数公式产生的数值(而不是公式)复制下来。

如果需要生成一个不重复的随机序列。
比如:我们要模拟洗牌,将一副扑克牌去掉大小怪后剩下的52张打乱。
比较笨的方法是在1-52间每生成一个随机数后,检查该随机数是否出现过,如果是第一次出现,就放到序列里,否则重新生成一个随机数作检查。在 excel worksheet里面用这种办法,会造成if多层嵌套,不胜其烦,在VBA里面做简单一些,但是效率太差,越到序列的后端,效率越差。 当然也有比较好的办法,在VBA里面,将a(1)-a(52)分别赋予1-52,然后做52次循环,例如,第s次生成一个1-52间的随机数r,将a(s)与a(r)互换,这样的话,就打乱了原有序列,得到一个不重复的随机序列。 VBA里这个算法是很容易实现的,但是,出于通用性和安全考虑,有的时候我们并不希望用VBA,我们来看看在worksheet里面如何利用内置函数实现这个功能。 (1)在A1-A52间填入"=INT(RAND()*52)+1",产生1-52间的随机数,注意这里是有重复的 (2)在B1-B52间填入1-52 (3)在C54-BB54填入1-52 (4)在C1填入"=IF(ROW()=C$54,INDEX(B$1:B$52,INDEX($A$1:$A$52,C$54)),IF(ROW()=INDEX($A$1:$A$52,C$54),INDEX(B$1:B$52,C$54),B1))"。 分项解释: a:ROW()=C$54,如果当前行等于当前交换所排的序号 b:INDEX(B$1:B$52,INDEX($A$1:$A$52,C$54)),返回在B1到B52中选择A1:A52中的第C54个值 c:IF(ROW()=INDEX($A$1:$A$52,C$54),否则的话,如果当前行等于A1:A52中第C54个值,则: d:INDEX(B$1:B$52,C$54),返回B1:B52中的第C54个值 e:若以上条件都不满足,则返回B1 (5)将C1复制到C1:BA52这个区域里面 (6)在BA1:BA52中,我们就得到了一个不重复的随机序列,按F9可以生成一个新序列。 随机产生六位数字密码=INT(RAND()*(899999-10001))+100001 EXCEL生成前2位是大写字母,中间4位是小写字母,后两位是数字 =CHAR(65+INT(RAND()*16))&CHAR(65+INT(RAND()*16))&CHAR(97+INT(RAND()*16))&CHAR(97+INT(RAND()*16))&CHAR(97+INT(RAND()*16))&CHAR(97+INT(RAND()*16))&INT(RAND()*10)&INT(RAND()*10)

===============
随机分组
创建DE二个辅助列
D2公式=rand()下拉
E2公式=rank(d2,$D$2:$D$121)
下拉
F1第一组G1第二组H第三组I第四组
F2=vlookup(row(a1),if({1,0},$e$2:$E$121,$B$2:$B$121),2,0)&" "&vlookup(row(a1),if({1,0},$e$2:$E$121,$A$2:$A$121),2,0)
G2=vlookup(row(a31),if({1,0},$e$2:$E$121,$B$2:$B$121),2,0)&" "&vlookup(row(a1),if({1,0},$e$2:$E$121,$A$2:$A$121),2,0)
H2=vlookup(row(a61),if({1,0},$e$2:$E$121,$B$2:$B$121),2,0)&" "&vlookup

(row(a1),if({1,0},$e$2:$E$121,$A$2:$A$121),2,0)
I2=vlookup(row(a91),if({1,0},$e$2:$E$121,$B$2:$B$121),2,0)&" "&vlookup(row(a1),if({1,0},$e$2:$E$121,$A$2:$A$121),2,0)
公式全下拉。
DE拉120行,FGHI拉30行

相关文档
相关文档 最新文档