Excel项目工时利用率堆叠柱状图:日期区间按资源月统计问题
我太懂这种挫败感了——跨月的项目起止日期简直是Excel基础工具的“盲区”,普通函数和默认透视表根本没法把时间区间当成整体来拆分统计。别慌,我给你一套亲测有效的方案,核心是用Power Query搞定日期拆分,之后统计和做图就顺理成章了:
第一步:用Power Query把跨月项目拆分成月度记录
这一步是核心,能帮你把一个跨月项目自动拆分成每个月份的独立记录,还能自动计算每个月对应的工时占比:
- 选中你的原始数据(要包含
Resource、项目名称、起止日期、工时占比这些表头),点击「数据」选项卡 → 「从表格/区域」(确保勾选“我的表格有标题”)。 - 在Power Query编辑器里,先添加一列计算项目总天数:
点击「添加列」→「自定义列」,输入公式:
命名为「项目总天数」。Duration.Days([结束日期]-[开始日期])+1 - 再添加一列生成项目覆盖的所有日期:
同样用自定义列,公式:
命名为「每日日期」。List.Dates([开始日期], [项目总天数], #duration(1,0,0,0)) - 点击「每日日期」列右侧的展开箭头,选择「展开到新行」——这一步会把每个日期拆成单独的行。
- 添加「年月标识」列,方便后续分组:
自定义列公式:
生成类似Date.Year([每日日期])*100 + Date.Month([每日日期])202405这样的格式,避免同月份不同年份混淆。 - 现在按
Resource、项目名称、年月标识分组:
点击「转换」→「分组依据」,分组列选这三个,新列名设为「当月项目天数」,操作选「计数行」。 - 最后计算月度工时占比:
添加自定义列,公式:
这一步会把项目总占比按当月天数占比分配到对应月份。[工时占比] * ([当月项目天数]/[项目总天数]) - 删掉不需要的中间列(比如「每日日期」「项目总天数」),点击「关闭并上载」,把处理好的数据导入到新工作表。
第二步:用数据透视表统计月度工时占比
有了拆分好的数据,透视表就能轻松搞定统计:
- 选中处理后的新数据,点击「插入」→「数据透视表」。
- 在透视表字段面板里:
- 把「年月标识」拖到「行」区域,「Resource」拖到「列」区域;
- 把「月度工时占比」拖到「值」区域,确保值字段的汇总方式是「求和」。
第三步:制作堆叠柱状图
统计好数据后,做图就简单了:
- 选中透视表的整个数据区域(包含行、列、值);
- 点击「插入」→「柱状图」→「堆叠柱状图」;
- 最后调整图表细节:把横轴的「年月标识」改成更友好的格式(比如用
TEXT函数把202405转成「2024年5月」),调整图例位置,添加标题等。
如果你的数据量不大,也可以用函数公式来计算,但操作起来繁琐很多。Power Query的方法一劳永逸,后续新增项目数据只要刷新就能自动更新拆分结果。
内容的提问来源于stack exchange,提问作者jeri




