Excel中数值范围的累计百分比平均值计算方法咨询
解决Excel中按区间计算累计百分比平均值的问题
输入数据
| days_took_to_equip | cumu_percent |
|---|---|
| 1 | 0.017418302 |
| 2 | 0.020625735 |
| 3 | 0.023148307 |
| 4 | 0.025237133 |
| 5 | 0.026972115 |
| 6 | 0.028752754 |
| 7 | 0.030350763 |
| 8 | 0.032040087 |
| 9 | 0.033603853 |
| 10 | 0.035270349 |
| 11 | 0.036788458 |
| 12 | 0.037518976 |
| 13 | 0.038283738 |
| 14 | 0.039379516 |
| 15 | 0.040189935 |
| 16 | 0.040783481 |
| 17 | 0.041685215 |
| 18 | 0.042347247 |
| 19 | 0.043032109 |
| 20 | 0.043739798 |
| 21 | 0.044230616 |
| 22 | 0.04476709 |
| 23 | 0.045269322 |
| 24 | 0.045725896 |
| 25 | 0.046250956 |
| 26 | 0.046684701 |
| 27 | 0.047129861 |
| 28 | 0.047620678 |
| 29 | 0.047997352 |
| 30 | 0.048396854 |
预期输出
| Range | Avg cum Percent |
|---|---|
| 1 to 10 | 0.027 |
| 1 to 20 | 0.033 |
| 1 to 30 | 0.038 |
问题描述
尝试用数据透视表实现上述分组计算,但标签设置遇到困难,需要得到该结果用于绘制图表,寻求可行解决方法。
解决方法
方法1:直接用公式计算
无需复杂操作,直接在空白单元格使用AVERAGEIFS公式计算对应区间的平均值,搭配ROUND保留三位小数:
- 1到10区间:
=ROUND(AVERAGEIFS(B:B,A:A,">=1",A:A,"<=10"),3) - 1到20区间:
=ROUND(AVERAGEIFS(B:B,A:A,">=1",A:A,"<=20"),3) - 1到30区间:
=ROUND(AVERAGEIFS(B:B,A:A,">=1",A:A,"<=30"),3)
方法2:辅助列+数据透视表
适合后续需要扩展更多区间的场景:
- 在原数据右侧新增辅助列,命名为
Range - 在辅助列首行(如C2)输入公式,下拉填充所有行,自动分配区间标签:
=IF(A2<=10,"1 to 10",IF(A2<=20,"1 to 20","1 to 30")) - 插入数据透视表:
- 将
Range字段拖至行区域 - 将
cumu_percent字段拖至值区域,修改值字段设置为平均值 - 右键点击值区域数字,选择「设置单元格格式」保留三位小数,即可得到预期结果
- 将
内容的提问来源于stack exchange,提问作者user62367
相关产品推荐
相关产品推荐

