在PowerBI中计算员工工时差值并完成多维度绩效分析需求
PowerBI 工时完成情况计算与员工维度分析
一、单条记录的工时偏差计算
核心逻辑:任务提前完成时结果为正,超时为负,计算方式为 目标完成时间 - 实际完成时间,时间差为正代表提前,负代表超时。
方法1:Power Query预处理(加载数据时计算)
- 把数据导入Power Query编辑器,先确认
Start Time、Completed Time、Target Time三列的类型为时间(Time)。 - 添加自定义列,输入公式:
= [Target Time] - [Completed Time]
生成的列是持续时间类型,比如提前15分钟显示00:15:00,超时45分钟显示-00:45:00,完全符合要求。
3. 要是需要转换成分钟数方便后续汇总,再添加一个自定义列:
= Duration.TotalMinutes([工时偏差])
结果会是数值型,比如15、0、-45。
方法2:DAX计算列(建模阶段生成)
在数据模型里新建计算列,用以下公式:
工时偏差(分钟) = DATEDIFF('你的表名'[Completed Time], '你的表名'[Target Time], MINUTE)
DATEDIFF的参数顺序是(实际完成时间,目标时间,单位),得到的结果刚好是提前为正、超时为负的分钟数。- 要是想要持续时间格式,用这个公式:
工时偏差(持续时间) = '你的表名'[Target Time] - '你的表名'[Completed Time]
二、员工维度的总工时偏差汇总
针对同一员工的多条记录,按员工分组计算总偏差:
1. DAX度量值(报表实时计算)
新建度量值,用来实时汇总每个员工的总工时偏差:
员工总工时偏差(分钟) = SUM('你的表名'[工时偏差(分钟)])
把这个度量值和Employee Name(员工列)放到可视化组件(比如柱状图、卡片图)里,就能看到:
- 总和为正:该员工整体提前完成的总时长
- 总和为负:该员工整体超时的总时长
- 总和为0:整体刚好达标
2. Power Query分组汇总(生成静态汇总表)
如果需要提前生成员工汇总表:
- 在Power Query编辑器里,点击
开始选项卡的分组依据。 - 分组列选
Employee Name,新列名设为总工时偏差(分钟),操作选求和,列选之前生成的工时偏差(分钟)。 - 确认后就能得到每个员工的总偏差汇总表,直接加载到模型用就行。
三、实用分析技巧
- 柱状图对比:用员工列做横轴,
员工总工时偏差(分钟)做纵轴,一眼就能看出不同员工的整体表现,正数值越高提前越多,负数值越低超时越严重。 - 明细钻取:给可视化开启钻取功能,点击员工就能查看该员工每条任务的偏差明细,定位具体哪些任务拖了后腿或者表现优秀。
- 日期趋势分析:如果数据有日期列,按日期分组,查看每个员工不同时间段的偏差变化,分析表现波动的原因。
- 达标率计算:新增DAX度量值,计算员工的任务达标率(提前或准时完成的任务占比):
任务达标率 = DIVIDE(COUNTROWS(FILTER('你的表名', '你的表名'[工时偏差(分钟)] >= 0)), COUNTROWS('你的表名'))
内容的提问来源于stack exchange,提问作者Shashank Reddy
相关产品推荐
相关产品推荐

