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

我试图谷歌这一点,但我甚至找不到任何解决scheme。

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

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

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

我不得不用你可以隐藏的辅助单元来做到这一点。 这张图片显示的结果,你可以隐藏O到T.

示例结果

在O到QI的列中,随机函数的范围小一个,因为你需要独特的样本。 这与从1-10号球十袋中拉1球相同。 每拉一次,包里就less了一个球。 公式如下:

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

因为我们不能使用类似的声明

 =IF(RANDBETWEEN(1,9)=O2,O2+1,RANDBETWEEN(1,9) 

因为第二个randrand产生一个新的号码不受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的三个唯一编号的列表

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

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

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

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

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

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

UPDATE

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

这里是一个例子:

在这里输入图像说明

作为典型示例,单元格A3:C3包含以下数组公式: {=randint(1,10)} 。 要input数组公式,请在公式中input三个单元格(不带大括号“{}”),然后按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,"") 。 这可以填充到右边并填充下来。

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

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

我build议设置您的选项进行手动计算。