分享

Excel公式:在指定数字区间生成不重复的随机数

 我爱学Excel 2023-03-25 发布于湖北

excelperfect

标签:Excel公式AGGREGATE函数COUNTIF函数RANDBETWEEN函数INDEX函数
有时候,我们想要随机生成不重复的数字。可以使用VBA程序实现,例如:
VBA程序:高效生成唯一(非重复)随机数
也可以使用公式实现,这就是本文下面要介绍的内容。
假设我们想要生成130之间的非重复的随机数,可以在单元格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
如果你将随机数的开始数字和结束数字分别输入到单元格B1C1,那么在单元格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,供参考。
欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多