如果我想取中位数平均值(排除最高值和最低值),有没有办法在 Excel 上执行此操作,而不必手动查找并从平均值计算中排除最高值和最低值?
答案1
您所描述的内容没有内置函数。但是,它不需要 VBA 宏。尝试以下公式:
=(SUM(myRange) - MAX(myRange) - MIN(myRange)) / (COUNT(myRange) -2)
myRange
用单元格范围替换(即A1:A10
:)。
答案2
Steven 的回答对于旧版本的 Excel 来说很棒。但是,在 Excel 2010 及更新版本中(可能在 Excel 2007 中也是如此),新函数SUMIFS
和COUNTIFS
可用于生成此类平均值的非常灵活的版本:
中位数平均值的函数为:
=SUMIFS(B2:B7,B2:B7,"<"&LARGE(B2:B7,1),B2:B7,">"&SMALL(B2:B7,1))/COUNTIFS(B2:B7,"<"&LARGE(B2:B7,1),B2:B7,">"&SMALL(B2:B7,1))
如果您想要一个从列表极端中排除更多值的中位数平均值,则只需更改和函数中的四个值1
以匹配要排除的值的数量。SMALL
LARGE