Excel中如何基于频次列计算配送天数的汇总统计量?
加权配送天数统计量高效计算方案
你的数据是「配送天数-对应订单数」的加权形式,不用手动展开数据,用以下几种高效方法就能算出所需统计量:
一、直接用Excel函数计算(新手友好,快速出结果)
1. 加权均值
用SUMPRODUCT计算加权总和,再除以总订单数:
=SUMPRODUCT(A2:A10, B2:B10)/SUM(B2:B10)
注:A2:A10是配送天数列,B2:B10是对应订单数列,根据你的实际数据范围调整
2. 加权中位数
Excel没有原生加权中位数函数,用PERCENTILE.INC结合动态数组生成重复天数序列(适用于Excel 365/2021):
=PERCENTILE.INC(SEQUENCE(SUM(B2:B10),,INDEX(A2:A10,1),1), 0.5)
如果是旧版Excel,输入公式后按Ctrl+Shift+Enter作为数组公式执行。
3. 加权众数
众数是出现频次最高的天数,直接找订单数最多对应的天数即可:
=INDEX(A2:A10, MATCH(MAX(B2:B10), B2:B10, 0))
4. 上下四分位数
和中位数逻辑一致,调整分位参数即可:
- 下四分位数(25%分位):
=PERCENTILE.INC(SEQUENCE(SUM(B2:B10),,INDEX(A2:A10,1),1), 0.25)
- 上四分位数(75%分位):
=PERCENTILE.INC(SEQUENCE(SUM(B2:B10),,INDEX(A2:A10,1),1), 0.75)
二、Power Query批量统计(适合多统计量需求,可视化操作)
- 选中你的数据区域,点击「数据」→「从表格/区域」,导入Power Query编辑器
- 点击「添加列」→「自定义列」,输入公式:
=List.Repeat({[配送天数]}, [配送订单数]),生成按订单数重复的天数列表 - 点击自定义列右上角的展开箭头,将列表拆分为单独行
- 切换到「转换」选项卡,点击「统计信息」,选择需要的统计量(均值、中位数、四分位数等),编辑器会自动计算结果
- 点击「关闭并上载」,将统计结果导入Excel
三、数据透视表的使用说明
数据透视表本身不支持直接加权统计,但可以先通过Power Query展开数据,再将展开后的数据拖入数据透视表,在「值字段设置」中选择对应的统计函数,也能实现需求,只是步骤比前两种方法稍繁琐。
内容的提问来源于stack exchange,提问作者shark-coral
相关产品推荐
相关产品推荐

