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

时间:2016-04-16 22:51:11

标签: excel average random-sample

我曾试图谷歌这一点,但我找不到任何解决方案。

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

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

                                                              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中完成此操作?

2 个答案:

答案 0 :(得分:1)

以下是一个例子:

enter image description here

作为典型示例,单元格A3:C3包含以下数组公式:{=randint(1,10)}。要输入数组公式,请选择三个单元格,键入公式(不使用大括号" {}"),然后按Shift + Ctl + Enter。这可以复制/填写。

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

单元格E3包含:=IF(OR($A3=E$1,$B3=E$1,$C3=E$1),E$2,"")。这可以填写到右边并填写。

Cell O3包含:=AVERAGE(E3:N3)

条件格式用于黄色高光。

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

答案 1 :(得分:1)

我必须使用你可以隐藏的辅助细胞来做到这一点。此图像显示结果,您可以隐藏O到T列。

Example results

在O到Q列中,我将随机函数放在范围内,因为您需要唯一的样本。这与1号球1-10号球的拉1球相同。每次拉动后,球袋中的球少一个。公式如下:

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

因为我们不能使用像

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

因为第二个randbetween产生一个新的数字不受IF检查我们需要在一个单独的单元格中做+1或+2。因此我使用R to 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))

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

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

现在,如果您不想每次更改单元格时重新计算,请将页面计算设置为MANUAL而不是AUTOMATIC。

为了隐藏O到T列,只需选择所有三个列字母,右键单击并选择隐藏列。

更新

第三个IF方程式已更新,因为之前无法正常工作。