随机数分配但为特定组分配相同的数字以用于预定条件

时间:2017-02-13 14:15:38

标签: excel excel-vba vba

我正在尝试将随机数分配给一组项目,但我希望其中一些项目可以根据某些常见事项分配相同的数字。例如,考虑将要分配随机数的一组学生。如果我希望女学生得到相同的随机性,同样的男学生得到相同的数字。我怎么能实现这个目标?我已经尝试过excel中的随机函数和if条件的buch,但无法达到我想要的效果。谢谢你的帮助!

2 个答案:

答案 0 :(得分:1)

方法1

到目前为止,最简单的方法是在单独的单元格中有两个随机数,并通过查找函数引用它们(也由@Scott Craner建议)

单元格C2中的公式为

=VLOOKUP(B2,$F$2:$G$3,2,0)

enter image description here

方法2

如果您想避免使用其他单元格,可以使用此答案中的方法创建不同随机数的数组: https://stackoverflow.com/a/40657050/2859347

例如,1到10之间的两个随机数的数组如下所示:

{=RANDBETWEEN(ROW($A$1:$A$2)^0,ROW($A$1:$A$2)^0*10)}

两个不同的随机数需要与MF匹配,以便您可以使用INDEXMATCH

我的设置如下:
enter image description here

要获取需要突出显示C2:C8的随机数,请按F2并在单元格C2中输入以下内容:

=INDEX(RANDBETWEEN(ROW($A$1:$A$2)^0,ROW($A$1:$A$2)^0*10),MATCH(B2:B8,{"M","F"},0))

使用 Ctrl + Shift + 输入而不是 Enter 输入公式。正确完成后,您将在公式周围看到大括号。

{=INDEX(RANDBETWEEN(ROW($A$1:$A$2)^0,ROW($A$1:$A$2)^0*10),MATCH(B2:B8,{"M","F"},0))}}

<小时/> 注意如果您想获得与RAND功能类似的随机数,您可以执行类似RANDBETWEEN(1,100000)/100000

的操作
=INDEX(RANDBETWEEN(ROW($A$1:$A$2)^0,ROW($A$1:$A$2)^0*100000)/100000,MATCH(B2:B8,{"M","F"},0))

答案 1 :(得分:0)

A 中的名称和 B 列中的性别, E1 E2 中的名称输入:< / p>

=RAND()
C1 中的

输入:

=IF(B1="F",$E$1,$E$2)

并复制下来:

enter image description here

这只是演示如何获得相同随机重复的示例。