Excel |生成随机数|避免重复

时间:2013-10-02 13:22:11

标签: excel vba

第一个计时器,所以希望我遵守规则...

背景

我在Excel 2010工作簿中有一个约500个条目(并且正在增长)的数据库。 这些内容是Q& A的测验。 数据格式为3列:

  • Col A =固定Q号码(1,2,3等)
  • Col B =问题文本
  • Col C =答案文本。

工作簿中的下一个工作表是我为自定义测验生成问题的随机候选名单(在我的情况下为80 Q),如下所示:

  • Col A =可用Q号
  • Col B = RAND()公式生成随机数
  • Col C =使用以下公式I然后使用RAND()输出 为“测验集”生成80个问题的唯一列表:

=INDEX(ROW($2:$5001),RANK(B2,$B$2:$B$5001))

由于RAND()函数是易失性的,我创建了一个宏,它可以获取随机80个数字的快照。它削减&将这些粘贴到第三个工作表,然后我运行VLOOKUP以提取生成的问题编号的匹配Q& A.

问题

由于这是每月一次的测验,我想避免每个月重复Q& A的数据库中的问题。根据问题的数量,我们已经同意,如果我们能够避免在滚动的4个月内重复,那就没问题了。 有没有一种方法可以在每次宏运行时删除可用问题列表,以便我删除在宏的前4次运行中使用的问题编号? 我用谷歌搜索了所有我想到的答案,但我要么没有使用正确的搜索条件,要么就是找不到答案。 当我使用上面列出的INDEX函数找到创建80问题候选名单的原始信息时,我想我会从这里开始。

1 个答案:

答案 0 :(得分:0)

您必须保留以前在某处选择的测验问题列表。

将列B更改为=RAND()-COUNTIF(Range_Where_Previous_q_listed,A2),对于之前列出问题的问题,随机数将变为负值,然后将落在RANK函数的底部。