假设您有一个雇员列表(或产品,小部件或其他),并且想要从该列表中随机选择两个项目。

您可以使用几个不同的工作表功能从列表中选择项目,例如RANDOM和RANDBETWEEN。

许多人使用RANDBETWEEN函数是因为它非常简单,并且在一定范围内提供随机数。因此,如果列表中有25个项目,那么RANDBETWEEN可以返回1到25之间的数字,该数字可以对应于列表中的项目。

例如,假设您的项目列表在A2:A26范围内,并且给该范围命名为Items。然后,您可以将以下公式放在单元格C2中,以返回介于1和项目数之间的数字:

=RANDBETWEEN(1,ROWS(Items))

将此公式复制到单元格C3,现在您有两个随机数代表列表中的项。在单元格D2和D3中,您可以输入如下公式以从列表中获取实际名称:

=INDEX(Items,C2)

这种方法的唯一问题是,RANDBETWEEN的两个实例(单元格C2和C3)都可能返回相同的值,因此最终您会从列表中两次选择相同的项目。

解决此潜在问题的一种方法是实际上从列表中选择三个项目,而不是两个。如果前两个项目相同,则可以将第三个项目用作“后备”项目以提供唯一的第二个项目。该方法不是万无一失的,因为这三种方法可能(但不太可能)全部相同。

从列表中选择项目的另一种方法是为每个项目分配自己的随机值,然后根据序列中的最高编号进行选择。 RANDOM函数返回一个介于0到1之间的随机值。在B列的每个单元格中,在A列中每个项目的右侧,输入以下公式:

=RAND()

选择单元格的范围(B2:B26),并使用诸如ItemNums之类的名称命名该范围。然后,您可以使用以下数组公式从列表中确定第一个随机名称:

=OFFSET(A$1,SUM((LARGE(ItemNums,1)=(ItemNums))*ROW(ItemNums))-1,0)

为了表示这是一个数组公式,请按Shift + Ctrl + Enter进行输入。该公式应返回一个名称。然后,您可以使用以下数组公式返回第二个名称:

=OFFSET(A$1,SUM((LARGE(ItemNums,2)=(ItemNums))*ROW(ItemNums))-1,0)

使用RAND函数方法比使用RANDBETWEEN更好的原因是因为RAND返回两个相同值的机会极小,而RANDBETWEEN这样做的机会要高得多。

_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

本技巧(2874)适用于Microsoft Excel 97、2000、2002和2003。可以在以下功能区中为Excel的功能区界面(Excel 2007及更高版本)找到本技巧的版本: