You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerBI DAX按用户、日期分类汇总项目与行政任务工时

方案选型结论

针对你这个跨多年的工时统计场景,优先使用DAX度量值实现,相比Power Query加列、DAX计算列的方案性能优势明显:

  • 不需要预计算占用模型存储空间,百万行级数据下刷新、交互响应速度更快
  • 维度适配灵活,后续新增月份、季度、部门等统计维度时不需要修改计算逻辑
  • 维护成本低,不需要逐行遍历源表做冗余计算
    只有当你需要导出固定结构的物理汇总表做离线使用时,再选择Power Query分组聚合方案,不建议使用DAX计算列实现——计算列会逐行预计算并持久化存储,对于分组汇总场景属于冗余设计,白白消耗内存。
DAX度量值实现步骤(推荐)

假设你的工时源表在模型中命名为TimeTrack,不需要修改源表任何结构,直接创建以下两个度量值即可:

  • 项目类任务总工时:
TotalProject = 
CALCULATE(
    SUM(TimeTrack[Hours]),
    NOT(ISBLANK(TimeTrack[ProjectID]))
)
  • 行政类任务总工时:
TotalAdmin = 
CALCULATE(
    SUM(TimeTrack[Hours]),
    NOT(ISBLANK(TimeTrack[AdminID]))
)

度量值创建完成后,在报表画布添加表格视觉对象,将User、Date字段拖入视觉对象的行区域,再将两个新建的度量值拖入值区域,Power BI会自动按「单用户+单日期」的粒度聚合出你需要的结果,和你给出的期望输出结构完全匹配。

补充说明:度量值的计算是上下文感知的,不管你是按日期、按用户、还是按其他维度筛选,都会自动适配当前筛选范围计算正确的汇总值,扩展性远好于预计算的固定列。

Power Query 物理汇总表实现(仅适用于固化表需求)

如果你需要生成一张独立的、结构固定的物理汇总表存入模型,可按以下步骤在Power Query中操作:

  1. 打开Power Query编辑器,选中你的工时源表
  2. 新增两个自定义列,拆分每行的工时归属:
    • 项目工时:if [ProjectID] <> null then [Hours] else 0
    • 行政工时:if [AdminID] <> null then [Hours] else 0
  3. 同时选中User、Date两列,点击顶部菜单栏的「分组依据」,选择「高级」分组,添加两个聚合规则:
    • 新列名TotalProject,聚合操作选「求和」,聚合列选刚才创建的「项目工时」列
    • 新列名TotalAdmin,聚合操作选「求和」,聚合列选刚才创建的「行政工时」列
  4. 点击确认即可生成目标结构的汇总表,后续数据刷新时会自动同步更新。

内容的提问来源于stack exchange,提问作者ScottCee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 15:12:32