excelperfect 标签:Excel公式,AGGREGATE函数,COUNTIF函数,RANDBETWEEN函数,INDEX函数有时候,我们想要随机生成不重复的数字。可以使用VBA程序实现,例如:假设我们想要生成1至30之间的非重复的随机数,可以在单元格A2中输入下面的公式:=IFERROR(AGGREGATE(14,6,ROW($1:$30)*NOT(COUNTIF($B$2:$B2,ROW($1:$30))),RANDBETWEEN(1,30-ROWS($1:1) 1)),'')注意,$A$1:$A1是在A2中输入公式并向下拖动时引用单元格A2的。假设你把这个公式输入在单元格G4中,它应该被替换为$G$3:$G3。如果你将随机数的开始数字和结束数字分别输入到单元格B1和C1,那么在单元格A2中使用下面的公式:=IFERROR(AGGREGATE(14,6,ROW(INDIRECT($B$1&':'&$C$1))*NOT(COUNTIF($A$1:$A1,ROW(INDIRECT($B$1&':'&$C$1)))),RANDBETWEEN($B$1,$C$1-ROWS($1:1) 1)),'')对于2010之前的Excel版本,可以使用下面的基本构造(构建错误处理取决于Excel版本,例如,Excel
2007将支持IFERROR,而2003支持ISERROR):=LARGE(INDEX(ROW($1:$30)*NOT(COUNTIF($A$1:$A1,ROW($1:$30))),,),RANDBETWEEN(1,30-ROW(A1) 1))注:本文学习整理自excelbianalytics.com,供参考。欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识。
|