用于从一行中的n个未排序值中获得(n-6)个最小值的平均值的公式

时间:2014-08-25 11:30:17

标签: excel-formula excel-2010 mean

如何使用Excel公式计算连续n个未排序值中的(n-(ceiling(n * .05)))最小值的平均值?

我试图获取范围内值的平均值,删除可被视为峰值的最大5%值。我不想对行进行预排序,因为我想保留值的顺序。

例如:如果值的范围在D2:Z2中,那么我需要C2中的公式来返回范围内的(23-(上限(23 * .05)))= 21最小值的平均值。

我正在查看SUMIFS,但无法使用条件值中的单元格地址。

2 个答案:

答案 0 :(得分:1)

使用Shift-Ctrl-Enter作为数组公式输入,可以使用:

=SUM(B1:P1*IF(RANK.EQ(B1:P1,$B$1:$P$1)>6,1))/SUM(IF(RANK.EQ(B1:P1,$B$1:$P$1)>6,1))

假设您在范围B1:P1中有n = 15个值,并且您希望问题标题中指示的(n-6)= 9个最小值的平均值。

如果您想要n-(ceiling(n*.05))最小值,那么只需将CEILING.PRECISE(COUNT($B1:$P1)*0.05)替换为6,如下所示:

=SUM(B1:P1*IF(RANK.EQ(B1:P1,$B$1:$P$1)>CEILING.PRECISE(COUNT($B1:$P1)*0.05),1)) 
 /SUM(IF(RANK.EQ(B1:P1,$B$1:$P$1)>CEILING.PRECISE(COUNT($B1:$P1)*0.05),1))

显示中间计算的证明和解释:

enter image description here

答案 1 :(得分:0)

使用更简单的硬编码特殊解决方案 =(SUM(I2:KV2)-sum(LARGE(I2:KV2,{1,2,3,4,5,6,7})))/(COUNT(I2:KV2)-7)