Excel RANDBETWEEN允许一个副本

Nel*_*ons -1 excel vba excel-vba excel-formula

我在Excel,VBA方面相当先进,但我遇到了一个问题,试图找出如何使用RANDBETWEEN公式并且只允许1个重复.

示例:我有50人的列表.我需要能够给每个人一个1-25之间的数字,但这个数字只能出现一次.所以两个人将拥有数字1.两个人将拥有数字2等等....

有任何想法吗?

ash*_*awg 6

RANDBETWEEN不是这样的.它只返回两个指定数字之间的随机数.(如果它只分配了一个数字,它就不会是随机的!)

如果你需要随机分配一个'somethings'列表(即,数字1到25,数字1到25两次,颜色,名称,文件等等),快速的方法就是这样:

基本上就是,

  1. 列出一个列中的所有可能性(每个项目根据需要出现),
  2. 添加第二列,其中包含=RAND()每个可能数字旁边的列,以及
  3. 使用列对列表进行排序RAND().

randlist


RAND()返回0到1之间伪随机数 .

因此,RANDBETWEEN (x,y)完全一样INT(RAND()*y)+x.

只是为了混淆问题, VBA中的相同功能是拼写的RND().

  • 对于OP的特定情况,在D列中输入的数字将是1到25,然后是1到25(即两组1-25而不是一组)但除此之外,我认为这是最好的办法. (2认同)
  • 假设x和y是正整数,则等效于RANDBETWEEN(x,y)实际上是`= INT(RAND()*(y-x + 1))+ x (2认同)