如何基于层级列表格创建Excel Pivot Table并按Epic汇总工时?
按Epic汇总工时的Excel数据透视表实现方案
1. 先补全Epic列的空白值
当前表格里只有每个Epic的首行有值,子层级都是空的,直接做透视表会分组错误,先把空白填上:
- 选中Epic列的所有数据单元格(比如B2到B10)
- 按
Ctrl+G打开定位窗口,点「定位条件」选「空值」,确定 - 编辑栏输入
=B1(指当前空白单元格上方的非空单元格),按Ctrl+Enter一键填充所有空白,这样所有子层级都会继承上方的Epic值
处理后的数据会变成这样:
| Code | Epic | Stories | Task | Hour |
|---|---|---|---|---|
| 1 | E1 | |||
| 1.1 | E1 | St1 | ||
| 1.1.1 | E1 | Ts1 | 10 | |
| 1.1.2 | E1 | Ts2 | 20 | |
| 1.2 | E1 | St2 | ||
| 1.2.1 | E1 | Ts21 | 5 | |
| 1.2.3 | E1 | Ts22 | 2 | |
| 2 | E2 | |||
| 2.1 | E2 |
2. 创建数据透视表
- 选中整个数据区域(包含表头),点「插入」选项卡的「数据透视表」,确认数据区域后选个地方放透视表(新工作表或当前表都行)
- 在右侧字段面板里:
- 把「Epic」拖到「行」区域
- 新增一个「顶级Code」辅助列(更方便显示1、2这种顶级编码):在表格右侧加列,公式写
=LEFT(A2,FIND(".",A2&".")-1),下拉填完所有行,然后把「顶级Code」拖到「行」区域(放Epic上面) - 把「Hour」拖到「值」区域,默认就是求和,要是不对就右键值字段选「值字段设置」改成「求和」
3. 调整E2的工时显示为xyz
因为E2没有有效工时,默认求和会显示0,改成xyz的话:
- 右键透视表里的Hours数值,选「值字段设置」→「数字格式」
- 自定义格式输入
0;;"xyz",确定后0值就会显示成xyz
最终得到的透视表就是你要的效果:
| 顶级Code | Epic | Hours |
|---|---|---|
| 1 | E1 | 37 |
| 2 | E2 | xyz |
内容的提问来源于stack exchange,提问作者xbmono
相关产品推荐
相关产品推荐

