如何在给定范围内生成随机数(或单元格)?没有使用相同的结果两次?

时间:2012-11-28 01:47:30

标签: excel-2010 random-access

我正在尝试从特定范围生成随机单元格:

我需要每个单元格行从特定列(范围)生成随机选择

下面是我设置的图片和失败的尝试:

enter image description here

3 个答案:

答案 0 :(得分:1)

你可以这样做:

  1. 使用=RAND()在数据集旁边添加随机数。我使用了列B,但你可以把它放在任何你喜欢的地方。
  2. 将此公式添加到单元格C2H2

    =INDEX($A$2:$A$21,RANK.EQ(INDEX($B$2:$B$21,COLUMN()-2),$B$2:$B$21))
    
  3. 工作原理:

    • RAND()返回[0..1)范围内的随机数。这用作数据的随机排序顺序
    • 分解公式:
      • COLUMN()-2会将1..6列的序号C返回到H
      • INDEX($B$2:$B$21, ... )从随机数列表中返回1st6th号码
      • RANK.EQ( ... ,$B$2:$B$21)返回已排序随机数列表1..20中随机数的位置。
      • =INDEX($A$2:$A$21, ... )根据上面的随机排名从您的数据集中返回一个项目。

    注意:每次Excel重新计算时,都会返回一个新的randon样本。

答案 1 :(得分:0)

进行不重复的随机选择的唯一方法是创建一个整数数组,而不是随机选择它,而不是一个一个地取出。

例如,您从:

开始

1 2 3 4 5 6 7

随机化它(随机交换元素)

2 4 5 1 7 3 6

比你逐一拿出元素。 (保留一些单元格中使用的元素的索引)

答案 2 :(得分:0)

random trick

这里有一个技巧,添加另一列随机数,而不是选择随机列和范围列,然后单击排序按钮(图片来自libreoffice,但excel中有一个类似的按钮)这将随机化您的范围列。比你简单地给“w-1”指定值:“w-6”像这样= B2,= B3,= B4,= B5,= B6,= B7

我尝试了这个并且它的工作方式与您想要的一样,唯一的问题是它会在您的范围列中随机播放值。