人生没有彩排
每一天都是现场直播

在PowerBI中进行在离职分析

员工在离职分析是企业人力资源管理中的重要环节,通过数据分析可以识别出企业在用人、留人等方面的问题。本篇文章将介绍如何在PowerBI中计算各个月份的在职、入职、离职人数,以及离职率等指标。

问题描述

为更好了解企业人员流动情况,现在需要进行在离职分析,请自行建模计算各个月份的在职、入职、离职人数,以及离职率。

其中:离职率 = 离职人数 / (在职人数+离职人数)

注意:总计部分中,在职人数计算的是最新数据,入离职人数则计算的是汇总数据。

具体问题如下图所示:

本案例的初始数据如下:

人员表:

ID 姓名 入职部门 入职日期 离职日期 转正日期
1003 姓名3 部门3 2018年5月9日 2018年10月1日 2018年8月7日
1004 姓名4 部门4 2018年5月11日 2018年9月20日 2018年8月8日
1005 姓名5 部门1 2018年5月12日 2018年8月10日
1006 姓名6 部门2 2018年5月13日 2018年8月11日
1007 姓名7 部门3 2018年5月14日 2018年8月12日
1008 姓名8 部门4 2018年6月15日 2018年9月18日 2018年9月13日
1009 姓名9 部门1 2018年6月16日 2018年9月18日 2018年9月14日
1010 姓名10 部门2 2018年9月17日 2018年10月1日
1011 姓名11 部门3 2018年9月18日
1012 姓名12 部门4 2018年9月19日
1013 姓名13 部门1 2018年9月20日
1014 姓名14 部门2 2018年9月21日
1015 姓名15 部门3 2018年9月22日
1016 姓名16 部门4 2018年10月1日
1017 姓名17 部门4 2018年10月2日 2018年10月12日
1018 姓名18 部门1 2018年10月3日
1019 姓名19 部门2 2018年10月4日
1020 姓名20 部门3 2018年10月5日
1021 姓名21 部门4 2018年10月6日

若需其它辅助表等,可自行创建并建模。

解题要点

本案例的几个指标的计算逻辑都比较简单,具体如下:

1、在职人数,对于当前统计的月份而言,其入职日期应在月底或之前,且离职日期为空或离职日期晚于当前统计的月份。

2、入职人数,入职日期处于当前统计的月份中。

3、离职人数,离职日期处于当前统计的月份中。

4、离职率,等于:离职人数 / (在职人数+离职人数)

解决方案

首先创建一个日期表,并与人员表创建一对多关系,数据模型如下图所示:

然后,创建如下度量值:

在职人数 = 
VAR MaxDate = LASTDATE('日期表'[Date])
RETURN
CALCULATE(
    DISTINCTCOUNT('人员表'[ID]),
    '日期表'[Date]<=MaxDate,
    '人员表'[离职日期]=BLANK() || '人员表'[离职日期]>MaxDate
)
入职人数 = DISTINCTCOUNT('人员表'[ID])
离职人数 = 
CALCULATE(
    DISTINCTCOUNT('人员表'[ID]),
    TREATAS(VALUES('日期表'[Date]),'人员表'[离职日期]),
    ALL('日期表')
)
离职率 = DIVIDE([离职人数],[在职人数]+[离职人数])

然后创建一个矩阵,并将月份作为行标签,再将上面的度量值放入矩阵的值字段即可,结果如下图所示:

其他方案

以下解决方案精选自技术交流群中的其他小伙伴,希望他们的独到见解和解决思路能够为大家提供更多启发,内容已征得同意,特此分享出来供大家参考和借鉴。

该方案来自小伙伴:“林深见鹿”,通过拆解表结构,构建数据模型,有效简化了表达式的书写逻辑,体现出了数据模型的价值。

总结

以上方法仅供参考,若有更优雅的解决方案,欢迎留言讨论,或者加入我们的技术交流群,一起享受这种思维碰撞的快乐吧!

PBI/DAX技术交流群(QQ):344353627

赞(2) 打赏
未经允许不得转载:夕枫 » 在PowerBI中进行在离职分析
订阅评论
提醒
guest
0 评论
最新
最久 最赞
内联反馈
查看所有评论

觉得文章有用的话就支持一下吧~

感谢您的打赏支持,我将持续输出有价值的内容!

支付宝扫一扫打赏

微信扫一扫打赏