0

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

背景

我在 Excel 2010 工作簿中有一个包含约 500 个条目(并且还在增长)的数据库。这些实体是测验的问答。数据被格式化为 3 列:

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

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

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

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

由于 RAND() 函数是易变的,我创建了一个宏,它对随机 80 个数字进行快照。它将这些剪切并粘贴到第三张工作表中,然后我对其运行 VLOOKUP 以提取生成的问题编号的匹配问答。

问题

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

4

1 回答 1

0

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

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

于 2013-10-02T13:55:00.177 回答