我需要翻译一个在 AS/400 上工作的旧程序,该程序随机挑选学生为我的城市工作。我可以使用任何程序,只要它有效。为了简单快捷,我选择了excel。
但是,我遇到了一个小问题。我不需要重复,因为同一个学生不能在一个夏天做两份工作。另外,我需要这个灵活,因为每年都会增加新学生,并且会删除一些学生。
这个函数几乎和我想要的一样工作: =INDEX($A:$A,RANDBETWEEN(1,COUNTA($A:$A)),1)
索引 $A:$A 获取列 A 中的所有行。因此,即使我添加 20 个名称,它也会将它们考虑在内。然后它在第 1 行和 $A 列中的总行数 (COUNTA) 之间随机选择一个值(名称)。这种方法的问题是它允许重复。
我发现的另一个功能是创建一个充满 =ALEA() 的列,然后按数字对它们进行排名。这不是很漂亮,但至少没有重复。问题来自我的公式,这是静态的,我不能灵活:
=INDEX($A$2:$A$74,排名(B2,$B$2:$B$74))
我的名字在列 $A 中,我的随机值在列 $B 中。我要说的是,对列 B 中的 B2(然后是 B3,然后是 B4 等)中的值进行排名。
我想要的是将 COUNTA 集成到第二个函数中,并且(如果可能)采用 RANDBETWEEN 而不是 rank 函数,这样我就没有难看的数字了。
我愿意使用带有某种重复检查的第一个功能。只要秘书不用做很多操作,应该没问题。
非常感谢您的帮助 xox