精确计算和分析各部门的用人成本对于企业的人力资源管理和财务规划至关重要,本篇文章将介绍如何在PowerBI中计算各部门的用人成本。
问题描述
已知员工可以在公司内部自愿申请调岗,现在需要统计每月各部门的用人成本,请自行建模完成计算。规则如下:
如果当月某员工只归属于单个部门的,那么该员工这个月的工资全部计入该部门的用人成本,否则由当月涉及到的所有归属部门平摊。
注意:即使某个月中只有一天的归属期,对应部门也要平摊员工的工资计入用人成本。
具体问题如下图所示:
本案例的初始数据如下:
部门归属表:
姓名 | 开始时间 | 截止时间 | 部门归属 |
---|---|---|---|
张三 | 2024年12月1日 | 2025年2月2日 | 行政部 |
张三 | 2025年2月3日 | 2025年3月31日 | 财务部 |
李四 | 2025年1月1日 | 2025年2月15日 | 采购部 |
李四 | 2025年2月16日 | 2025年4月30日 | 采购部 |
王五 | 2025年2月1日 | 2025年12月31日 | 审计部 |
田七 | 2025年4月1日 | 2025年12月31日 | 项目部 |
工资表:
月份 | 姓名 | 工资 |
---|---|---|
202501 | 张三 | 8000 |
202501 | 李四 | 20000 |
202502 | 张三 | 8000 |
202502 | 李四 | 20000 |
202502 | 王五 | 30000 |
202503 | 张三 | 7500 |
202503 | 李四 | 18000 |
202503 | 王五 | 35000 |
202504 | 李四 | 15000 |
202504 | 王五 | 35000 |
202505 | 王五 | 33000 |
202505 | 田七 | 22000 |
若需其它辅助表等,可自行创建并建模。
解题要点
首先计算出员工当月的工资,以及当月所涉及到的归属部门,然后进行平摊即可。
另外,在查找归属部门时,可以将归属的开始与截止日期转换为年月格式,这样比较方便后续的比较与判断。
解决方案
首先,数据模型如下图所示:
然后,创建如下度量值:
用人成本 =
SUMX(
CROSSJOIN(
SUMMARIZE('工资表','工资表'[月份],'工资表'[姓名]),
VALUES('部门归属表'[部门归属])
),
VAR CurMonth_ = '工资表'[月份]
VAR Salary_ = CALCULATE(SUM('工资表'[工资]))
VAR RelatedDept_ =
SUMMARIZE(
FILTER(
ALL('部门归属表'),
'部门归属表'[姓名]='工资表'[姓名]
&& FORMAT('部门归属表'[开始时间],"yyyymm")*1<=CurMonth_
&& FORMAT('部门归属表'[截止时间],"yyyymm")*1>=CurMonth_
),
'部门归属表'[部门归属]
)
RETURN
IF(
'部门归属表'[部门归属] IN RelatedDept_,
DIVIDE(Salary_,COUNTROWS(RelatedDept_))
)
)
然后创建一个矩阵,并将工资表的月份和姓名字段、以及部门归属表的部门归属字段一起作为行标签,再将上面的度量值放入矩阵的值字段即可,如下图所示:
总结
以上方法仅供参考,若有更优雅的解决方案,欢迎留言讨论,或者加入我们的技术交流群,一起享受这种思维碰撞的快乐吧!
PBI/DAX技术交流群(QQ):344353627