在 excel 中生成随机组
- 具有随机大小的随机组(选择 + RANDBETWEEN)
- 相同大小的随机组(RAND + ROUND + RANK)
在这两种方法中我们都需要编写一个公式。在本教程中,我们将学习这两种方法并详细了解它们。
在此示例中,您有一个包含学生姓名的列表,现在您需要为他们分配一组随机的北、南、东、西组。
在 Excel 中生成随机组
要编写此公式,您可以使用以下步骤:
- 首先,在单元格中输入 CHOOSE 函数。
- 在 CHOOSE 的第一个参数(index_num)中,输入 RANDBETWEEN 函数。
- 现在,在 RANDBETWEEN 中,在底部输入“1”,在顶部输入“4”。所以你有四组来得到结果;这就是为什么您需要使用 1 和 4 来创建一系列随机数。
- 然后,在 CHOOSE 的第二个参数中,使用引号输入四个组的名称(“北”、“南”、“东”、“西”)。
- 最后按 Enter 键即可得到结果。并将公式拖至姓氏。
注意: RANBBETWEEN 是一个不稳定的函数,它会在您编辑电子表格时更新。
=CHOOSE(RANDBETWEEN(1,4),"North","South","East","West")
这个公式是如何运作的?
要理解这个公式,您需要将其分为两部分:在第一部分中,我们有 RANDBETWEEN,它返回 1 到 4 之间的随机数(因为我们有四个组)。
在第二部分中,我们有 CHOOSE 函数,它从您使用 index_number 定义的列表中返回一个值。当 RANDBETWEEN 返回随机数时,CHOOSE 使用该数字返回列表值。
当索引号为 3 时,SELECT 在结果中返回“Is”。
但有一个问题。
使用此公式时,不存在相同大小的分组。因此,您可以在结果中看到分配给学生的小组大小不一样。
仅当您不想考虑组大小时,此方法才适用;否则,您需要使用我们接下来要讨论的公式。
生成随机组(大小相同)
要使用此公式,您需要使用 RAND 函数创建一个辅助列来获取 0 到 1 之间的随机数,如下所示。
注意: RAND 也是一个易失性函数,会改变其值。在这里我将把公式转换为值。
之后输入一个新列和 RANK 函数。然后,在 number 参数中,指定 B2 中的随机数;在 ref 参数中,使用整个范围的随机数。
=RANK(B2,$B$2:$B$13)
它会为列表中的 12 名学生创建一个独特的排名。现在您需要将此排名除以三,因为您需要在一个小组中包含三名学生。
=RANK(B2,$B$2:$B$13)/3
然后您需要使用 ROUNDUP 将这些排名向上舍入。
=ROUNDUP(RANK(B2,$B$2:$B$13)/3,0)
使用 ROUNDUP 后,您会得到一个大小相等的组,其中每个组具有相同数量的学生(所有四个组中有 12 名学生,每组有 3 名学生)。然后,再次使用 SELECT 将这些数字组转换为组名称。
=CHOOSE(ROUNDUP(RANK(B2,$B$2:$B$13)/3,0),"North","South","East","West")