如何在Excel中高效获取占总案例数前25%的站点名称?
更优获取占总案例数前25%站点名称的方法
现有方法的不足
手动累加站点案例数效率低,数据更新时需重复操作,还容易出错。以下是几种自动化的改进方案:
1. 自动计算累计值(替代手动累加)
在累计值列(比如C列)的第一个数据单元格(C3)输入公式:
=SUM($B$3:B3)
拖动公式向下填充至所有行,系统会自动计算从第一个站点到当前站点的累计案例数。
同时,目标值改为动态计算,避免固定单元格范围的局限:
=SUM(B:B)*0.25
数据新增或修改时,目标值会自动同步更新。
2. 动态筛选符合条件的站点
筛选法
选中累计值列,点击「数据」选项卡的「筛选」,设置筛选条件为「小于或等于」目标值,即可快速得到所有符合要求的站点。
公式提取法
在空白列(比如D列)输入公式,判断当前行的累计值是否达标:
=IF(C3<=E$1, A3, "")
(假设E1是动态计算的目标值单元格),拖动填充后,所有达标站点名称会自动显示,空值可通过筛选去除。
3. 利用Power Query实现全自动化流程
如果需要频繁更新数据,Power Query是更高效的选择:
- 选中数据区域,点击「数据」选项卡的「从表格/区域」导入Power Query编辑器。
- 按「Count of Site Name」列降序排序。
- 添加自定义列,输入公式计算累计值:
List.Sum(List.FirstN(#"Sorted Rows"[Count of Site Name], [Index]+1))
- 添加自定义列判断是否符合前25%:
[累计值] <= List.Sum(#"Sorted Rows"[Count of Site Name])*0.25
- 筛选「符合条件」列为True的行,移除多余列,点击「关闭并上载」将结果导出到新工作表。
后续数据更新时,右键点击结果表选择「刷新」即可自动更新筛选结果。
4. 优化数据透视表用法
如果已经在使用数据透视表:
- 将「行标签」设为站点名称,「值」设为案例数的计数。
- 按案例数降序排序站点。
- 添加计算字段:点击「分析」选项卡的「字段、项目和集」→「计算字段」,输入名称「累计值」,公式为
=SUM(Count of Site Name),设置为「运行总计」,基础字段选择站点名称。 - 在数据透视表中筛选「累计值」列,设置条件为小于等于总案例数的25%。
原始数据参考
| 行标签 | Count of Site Name | 手动累计值 |
|---|---|---|
| Site - 470 | 44 | 44 |
| Site - 316 | 39 | 83 |
| Site - 222 | 38 | 121 |
| Site - 496 | 34 | 155 |
| Site - 279 | 20 | 175 |
| Site - 435 | 16 | 191 |
| Site - 335 | 16 | 207 |
| Site - 507 | 15 | 222 |
| Site - 301 | 15 | 237 |
| Site - 413 | 14 | 251 |
| Site - 542 | 13 | 264 |
| Site - 473 | 12 | 276 |
| Site - 469 | 12 | 288 |
| Site - 136 | 12 | |
| Site - 506 | 11 | |
| Site - 498 | 10 | |
| Site - 427 | 10 | |
| Site - 277 | 9 | |
| Site - 522 | 8 | |
| Site - 424 | 8 | |
| Site - 228 | 8 | |
| Site - 233 | 8 | |
| Site - 275 | 8 | |
| Site - 141 | 8 | |
| Site - 494 | 7 | |
| Site - 230 | 7 | |
| Site - 208 | 7 | |
| Site - 253 | 7 | |
| Site - 439 | 7 | |
| Site - 366 | 7 | |
| Site - 151 | 7 | |
| Site - 520 | 6 |
内容的提问来源于stack exchange,提问作者Zeke Medina
相关产品推荐
相关产品推荐

