excel 随机 抽取 无重复 50
1、如果数据在Sheet2 的A:D列,在Sheet2的A列前插入两列辅助列;
2、在左上角的名称框中,输入A2:A953,按Enter键,将A2:A953单元格选中,输入=RAND(),按Ctrl+Enter组合键结束,快速向A2:A953单元格中输入随机数(随机数的重复机率极低);
3、在B2单元格输入以下公式,然后向下填充公式,得到A列数据的排名(同样没有重复排名)
=RANK(A2,A:A)
4、在Sheet1的A2单元格输入以下公式,然后向右向下填充公式到D361单元格,得到由Sheet2工作表中随机取得的不重复的360行数据
=VLOOKUP(ROW()-1,Sheet2!$B:$F,COLUMN(B1),0)
公式表示:以当前行号在Sheet2的B列精确匹配对应行,并返回对应第2列(Sheet2的C列)数据。
5、因随机取数时,工作表只要输入一个数据,就会在“自动计算”中 重新得到一组数据,因此,可以将Sheet2的A列,“复制”并“选择性粘贴”为“数值”,避免数据不断变换。或者将“公式”选项中的“计算选项”设置为“手动”。
6、注意:通过RANDBETWEEN函数得到随机函数的方法,会出现重复数据,从而达不到既随机又唯一取数的目的,没有RAND得到一列不重复的随机数再排名来得科学有效。
如随机抽取“工程部”的,假设工程部有100人:
在C1输入
=INDEX(B:B,SMALL(IF(A$1:A$1000="工程部",ROW($1:$1000),4^8),INT(RAND()*100+1)))&""
数组公式,输入后先不要回车,按Ctrl+Shift+Enter结束计算,再向下填充到C10,就是“工程部”的随机10人了。
但既然是随机,就有可能出现重复,可交替按F2和Enter更新数据直至满意。
或:
在C1~C10、C11~C20、C21~C30、……分别输入部门名称(各10个)。
在D1输入
=INDEX(B:B,SMALL(IF(A$1:A$1000=C1,ROW($1:$1000),4^8),INT(RAND()*100+1)))&""
也是数组公式,操作同上。
文不对题啊