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

查找从Excel中预定义列表中采样的三个随机数的平均值,excel,average,random-sample,Excel,Average,Random Sample,我曾尝试用谷歌搜索这个问题,但我找不到任何解决方案 假设我有一张十个不同年龄的清单。我想从200个试验的10个年龄组中随机抽取3个年龄组,通过将每个年龄组的文本颜色设为红色,然后计算这三个年龄组的平均值,并将其显示在序列中最后一个数字右侧的单元格中,来表示所选的三个年龄组 以下是我的意思的一个例子: Average Trial 1: **40**, 31, 18, **

我曾尝试用谷歌搜索这个问题,但我找不到任何解决方案

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

以下是我的意思的一个例子:

                                                              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)}
。要输入数组公式,请选择三个单元格,键入公式(不带大括号“{}”),然后按Shift+Ctl+enter。这可以复制/填写

有关RandInt vba代码,请参见以下内容:。请注意,使用RANDBETWEEN不能保证三个唯一的数字。有一些电子表格方法可以获得这三个数字,但它们比使用VBA更复杂

单元格E3包含:
=IF(或($A3=E$1,$B3=E$1,$C3=E$1),E$2,”)
。可以向右填充,然后向下填充

单元格O3包含:
=平均值(E3:N3)

条件格式用于黄色高光

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

以下是一个示例:

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

有关RandInt vba代码,请参见以下内容:。请注意,使用RANDBETWEEN不能保证三个唯一的数字。有一些电子表格方法可以获得这三个数字,但它们比使用VBA更复杂

单元格E3包含:
=IF(或($A3=E$1,$B3=E$1,$C3=E$1),E$2,”)
。可以向右填充,然后向下填充

单元格O3包含:
=平均值(E3:N3)

条件格式用于黄色高光


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

我必须使用可以隐藏的辅助单元格进行设置。此图显示结果,您可以隐藏O到T列

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

=randbetween(1,10)
=randbetween(1,9)
=randbetween(1,8)
=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)))
因为我们不能用这样的语句

=IF(RANDBETWEEN(1,9)=O2,O2+1,RANDBETWEEN(1,9)
因为第二个randtween生成一个新的数字不受IF检查的约束,所以我们需要在单独的单元格中执行+1或+2。因此,我用R到T来做这件事,R实际上只是一个占位符,因为它的值与O相同。公式如下:

=randbetween(1,10)
=randbetween(1,9)
=randbetween(1,8)
=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)))
最后,我们需要将颜色添加到具有条件格式的数字中,因此我们选择B2:K201,并根据需要将以下公式放入条件格式和颜色中

=OR(COLUMN(B2)-1=$R2,COLUMN(B2)-1=$S2,COLUMN(B2)-1=$T2)
现在,如果您不希望每次单元格更改时都重新计算,请将页面计算设置为手动,而不是自动

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

更新
第三个IF公式已更新,因为它以前工作不正常。

我必须使用辅助单元格来完成此操作,您可以将其隐藏。此图显示结果,您可以隐藏O到T列

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

=randbetween(1,10)
=randbetween(1,9)
=randbetween(1,8)
=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)))
因为我们不能用这样的语句

=IF(RANDBETWEEN(1,9)=O2,O2+1,RANDBETWEEN(1,9)
因为第二个randtween生成一个新的数字不受IF检查的约束,所以我们需要在单独的单元格中执行+1或+2。因此,我用R到T来做这件事,R实际上只是一个占位符,因为它的值与O相同。公式如下:

=randbetween(1,10)
=randbetween(1,9)
=randbetween(1,8)
=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)))
最后,我们需要将颜色添加到具有条件格式的数字中,因此我们选择B2:K201,并根据需要将以下公式放入条件格式和颜色中

=OR(COLUMN(B2)-1=$R2,COLUMN(B2)-1=$S2,COLUMN(B2)-1=$T2)
现在,如果您不希望每次单元格更改时都重新计算,请将页面计算设置为手动,而不是自动

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

更新
第三个IF方程因之前不正常而进行了更新。

所有这些数字是在一个单元格中还是在各自的列中?采样的年龄是唯一的还是可以重复?你能把40随机地说两次或三次而不是一次吗?@转发的每个都在自己的列中,可以从一个试验重复到另一个试验(尽管我希望重复之间有一定的距离,如果可能的话),但不能在一个试验中重复。@ForwardEd不,数字必须是唯一的,并且在定义的集合中,在一个trialok中查看这些函数,RAND、randtween、IF。然后看看Excel的条件格式。我正在与那些目前在公式。这在VBA中可能会更好。公式中的RAND的问题是,is每次更改单元格时都会选择一个新的数字。这些数字是在一个单元格中还是在各自的列中?采样的年龄是唯一的还是可以重复?你能把40随机地说两次或三次而不是一次吗?@转发的每个都在自己的列中,可以从一个试验重复到另一个试验(尽管我希望重复之间有一定的距离,如果可能的话),但不能在一个试验中重复。@ForwardEd不,数字必须是唯一的,并且在定义的集合中,在一个trialok中查看这些函数