Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel |生成Randon编号|避免重复_Excel_Vba - Fatal编程技术网

Excel |生成Randon编号|避免重复

Excel |生成Randon编号|避免重复,excel,vba,Excel,Vba,第一次,所以希望我遵守规则 背景 在Excel 2010工作簿中,我有一个大约500个条目的数据库(而且还在增长)。 所有的答案都是问答题。 数据格式为3列: A列=固定Q数(1、2、3等) Col B=问题文本 Col C=答案文本 工作簿中的下一页是我为一个成套测验(在我的案例中是80个问题)生成随机问题短名单的地方,如下所示: A列=可用的Q数 Col B=RAND()公式生成随机数 Col C=使用以下公式,然后使用RAND()输出 为“测验集”生成80个问题的唯一列表: =索引

第一次,所以希望我遵守规则

背景

在Excel 2010工作簿中,我有一个大约500个条目的数据库(而且还在增长)。 所有的答案都是问答题。 数据格式为3列:

  • A列=固定Q数(1、2、3等)
  • Col B=问题文本
  • Col C=答案文本
工作簿中的下一页是我为一个成套测验(在我的案例中是80个问题)生成随机问题短名单的地方,如下所示:

  • A列=可用的Q数
  • Col B=RAND()公式生成随机数
  • Col C=使用以下公式,然后使用RAND()输出 为“测验集”生成80个问题的唯一列表:
=索引(行($2:$5001),排名(B2,$B$2:$B$5001))

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

问题

因为这是一个月一次的测验,所以我想避免每个月都重复来自答疑小组的问题。根据问题的数量,大家一致认为,如果我们能在连续4个月内避免重复,那就可以了。 是否有一种方法可以在每次运行宏时删除可用问题列表,以便删除在之前4次运行宏时使用的问题编号? 我已经用谷歌搜索了所有我能想到的答案,但我要么没有使用正确的搜索条件,要么就是找不到答案。
当我找到关于使用上面列出的索引函数创建80个问题短名单的原始信息时,我想我应该从这里开始。

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


将B列更改为
=RAND()-COUNTIF(Range\u Where\u Previous\u q\u listed,A2)
,对于前面列出的问题,随机数将变为负数,然后将落在
RANK
函数的底部。

您需要将“使用过的”问题存储在某个地方(即隐藏的工作表)或者设置一个标志(例如,在D列中),指示使用了哪些问题(以及何时使用)。然后,您可以使用此信息创建可用问题的词典,并从中提取。然后,你必须更新你的用过的问题列表,记住将那些很久以前就用过的问题标记为“未使用”以重新进入轮换。太棒了,这听起来像是朝着正确方向迈出的一步。我要去看看是否能找到一种方法,只在“上一个”列表中保留一定数量的问题编号。我有最新消息后会回来报告。。。谢谢