配色: 字号:
用数组公式生成不重复的随机整数列
2015-10-25 | 阅:  转:  |  分享 
  
用数组公式生成不重复的随机整数列来源:excel格子社区要在Excel中生成不重复的随机整数列,例如将1-22这22个数进行随机排列,通常用
在辅助列中输入RAND函数并排序的方法来实现。如果不用辅助列和VBA,用数组公式也可以实现。在A2单元格中输入数组公式:=LAR
GE(ROW($1:$22)(1-COUNTIF($A$1:A1,ROW($1:$22))),INT(RAND()(23-RO
W(A1))+1))公式输入完毕按Ctrl+Shift+Enter结束,然后拖到填充柄填充公式到A23,即可在A2:A23中生成
1-22这22个数,并随机排序。?http://www.excel123.cn/Article/UploadFiles/20110
9/2011091010505226.jpg%5C%22+target=%5C%22_blank%5C%22+.=%5C%22te
xt-decoration:+none;+color:+rgb%2815,+48,+104%29;?说明:1.“ROW($1
:$22)”产生一列包含1-22的垂直数组,如果需要更多的数值,将“22”改为所需数值即可。“1-COUNTIF($A$1:A1
,ROW($1:$22))”用COUNTIF函数判断已产生的数值,如果某个数字已在A列出现,则其对应位置为0,否则为1。上述两项
相乘后得到一个包含“0”和未出现数字的数组,并作为LARGE函数的第一个参数。例如在A9单元格中两项相乘的结果为数组:{0;0;
3;4;0;6;0;8;9;10;11;0;0;14;15;16;17;18;19;20;0;22}其中“13、7、5、1、12
、2、21”这7个数已在A列中出现,其对应位置为“0”。2.“INT(RAND()(23-ROW(A1))+1)”为LARGE
函数的第二个参数,其作用是产生一个随机整数,以A9单元格为例,由于已出现7个数字,还有15个数字未出现,故随机数的最大值为15,该
项产生一个1-15之间的随机整数。如果要在行中生成随机整数列,可用下面的数组公式,以B3单元格为例:=LARGE(COLUMN
($A3:$V3)(1-COUNTIF($A3:A3,COLUMN($A3:$V3))),INT(RAND()(23-COLU
MN(A3))+1))然后向右拖到公式到W3即可。也可选择B3:W3继续向下填充公式在多行中产生随机整数列,如图。?1格子社区
-Excel互助交流平台
献花(0)
+1
(本文系阳光的bilan...首藏)