如何使用Excel公式计算连续n个未排序值中的(n-(ceiling(n * .05)))最小值的平均值?
我试图获取范围内值的平均值,删除可被视为峰值的最大5%值。我不想对行进行预排序,因为我想保留值的顺序。
例如:如果值的范围在D2:Z2中,那么我需要C2中的公式来返回范围内的(23-(上限(23 * .05)))= 21最小值的平均值。
我正在查看SUMIFS
,但无法使用条件值中的单元格地址。
答案 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))
显示中间计算的证明和解释:
答案 1 :(得分:0)
使用更简单的硬编码特殊解决方案 =(SUM(I2:KV2)-sum(LARGE(I2:KV2,{1,2,3,4,5,6,7})))/(COUNT(I2:KV2)-7)