查找从 Excel 中的预定义列表中采样的三个随机数的平均值

Find Average of Three Random Numbers Sampled from a Pre-Defined List in Excel

我已经尝试 Google 这个,但我什至找不到任何解决方案。

假设我有一个包含十个不同年龄段的列表。我想从 200 次试验中的 10 个年龄列表中随机抽取三个年龄,通过将每个年龄的文本颜色设为红色来指示选择的三个年龄,然后计算这三个年龄的平均值并将其显示在右侧的单元格中该系列的最后一个数字。

这是我的意思的一个例子:

                                                              Average

Trial 1:  **40**, 31, 18, **6**, 10, **22**, 58, 92, 34, 77    22.6  
Trial 2:  40, 31, **18**, 6, 10, 22, **58**, 92, 34, **77**    51.0  
Trial 3:  40, **31**, 18, 6, **10**, 22, 58, **92**, 34, 77    44.3  
.  
.  
.  

如何在 Excel 中完成此操作?

这是一个例子:

作为典型示例,单元格 A3:C3 包含以下数组公式:{=randint(1,10)}。要输入数组公式,select 三个单元格,输入公式(不带大括号“{}”),然后按 Shift+Ctl+Enter。这样可以copy/filled下来。

查看 RandInt vba 代码:http://mcgimpsey.com/excel/udfs/randint.html。请注意,使用 RANDBETWEEN 不能保证三个唯一数字。有电子表格方法可以获取这三个数字,但它们比使用 VBA.

更复杂

单元格 E3 包含:=IF(OR($A3=E,$B3=E,$C3=E),E,"")。这个可以往右填,往下填。

单元格 O3 包含:=AVERAGE(E3:N3)

条件格式用于黄色突出显示。

我建议您将选项设置为手动计算。

我不得不用你可以隐藏的辅助细胞来做这件事。此图显示了结果,您可以隐藏 O 到 T 列。

在 O 到 Q 列中,我将随机函数放置在范围内,因为您需要独特的样本。这与从一袋编号为 1-10 的十个球中取出一个球相同。每拉一次,袋子里就少一个球。公式如下:

=randbetween(1,10)
=randbetween(1,9)
=randbetween(1,8)

因为我们不能使用像

这样的语句
=IF(RANDBETWEEN(1,9)=O2,O2+1,RANDBETWEEN(1,9)

因为第二个 randbetween 生成的新数字不受 IF 检查的影响我们需要在单独的单元格中执行 +1 或 +2。因此,我使用 R 到 T 来执行此操作,其中 R 实际上只是一个占位符,因为它与 O 的值相同。公式如下:

=O2
=IF(P2=O2,P2+1,P2)
=IF(OR(AND(Q2>O2+1,Q2>P2+1),AND(Q2<O2,Q2<P2),OR(AND(Q2=O2+1,Q2=P2-1),AND(Q2=O2-1,Q2=P2+1))),0,IF(OR(AND(Q2=O2,Q2=P2),Q2+1=O2,Q2+1=P2),2,IF(OR(Q2=O2,Q2=P2,O2=P2),1,0)))

我们现在有一个从 1 到 10 的三个唯一数字的列表

现在我们在我们的平均公式中使用这些选择,在单元格 M2 中有如下偏移:

=AVERAGE(OFFSET($A2,0,R2,1,1),OFFSET($A2,0,S2,1,1),OFFSET($A2,0,T2,1,1))

最后我们需要使用条件格式为数字添加颜色,因此我们 select B2:K201 并根据需要将以下公式放入我们的条件格式和颜色中。

=OR(COLUMN(B2)-1=$R2,COLUMN(B2)-1=$S2,COLUMN(B2)-1=$T2)

现在,如果您不希望每次单元格更改时都重新计算,请将您的页面计算设置为手动而不是自动。

为了简单地隐藏 O 到 T 列 select 所有三列字母,右键单击并 select 隐藏列。

更新

更新了第三个 IF 方程,因为它以前不正确。