如何在Excel中计算含数值减半规则的列平均值及中位数?
解决Excel中带条件转换的平均值与中位数计算问题
针对你的需求——当数值≤5时取其一半参与计算,否则保留原值,以下是适配Microsoft 365 Excel的正确公式:
平均值计算公式
方法1(经典数组逻辑,365支持直接回车)
=AVERAGE(IF(B9:B71<=5,B9:B71/2,B9:B71))
方法2(更清晰的MAP+LAMBDA写法)
=AVERAGE(MAP(B9:B71,LAMBDA(x,IF(x<=5,x/2,x))))
中位数计算公式
同理替换函数即可:
方法1
=MEDIAN(IF(B9:B71<=5,B9:B71/2,B9:B71))
方法2
=MEDIAN(MAP(B9:B71,LAMBDA(x,IF(x<=5,x/2,x))))
验证示例数据
以你提供的B列数据5、10、5、25、41为例:
- 转换后的数据为
2.5、10、2.5、25、41 - 平均值:
(2.5+10+2.5+25+41)/5=16.2,与目标值一致 - 中位数:转换后数据排序为
2.5、2.5、10、25、41,中位数为10
为何之前的AVERAGEIFS无法满足需求
AVERAGEIFS仅能筛选出满足条件的单元格并计算其平均值,无法对不满足条件的单元格保留原值,也无法对符合条件的单元格做数值转换后再合并计算,因此需要用IF函数逐个判断每个单元格的取值逻辑,再嵌套进AVERAGE/MEDIAN完成整体计算。
内容的提问来源于stack exchange,提问作者I Bee
相关产品推荐
相关产品推荐

