hr统筹数据分析教程(BI人力资源分析模型之离职率计算)(1)

Excel Power Pivot 和Power BI的功能其实是一模一样的

之所以选择BI是因为速度更快些,更重要的是可视化更加强大

基于员工花名册来计算离职率:

通常情况下,HR只能是依靠每个月的数据统计来计算当前月份的离职率。

因为,这里涉及两个时间序列:入职日期与离职日期。

要实现可以随意查询历史月份的离职率,这个仅依靠Excel用公式来实现,难度和复杂成都都很高。

而在Power BI 和Power Pivot中就要简单很多,因为在这里有专门用于计算时间的时间智能函数。

hr统筹数据分析教程(BI人力资源分析模型之离职率计算)(2)

下面我们就来介绍一下这个模型:

第一步:准备日历表

hr统筹数据分析教程(BI人力资源分析模型之离职率计算)(3)

在Excel中制作,或者在Power BI中制作都可以

我更倾向于用Power BI制作,使用CALENDAR函数,可以方便的调整日期的范围

Dimdate = CALENDAR("2016-1-1","2017-12-31")

这里的重点是

hr统筹数据分析教程(BI人力资源分析模型之离职率计算)(4)

hr统筹数据分析教程(BI人力资源分析模型之离职率计算)(5)

因为入职日期与离职日期都涉及跨年的数据统计,

只是用年和月来分析数据还是不方便。

第二步:建立关系

Power Pivot中要将日历表转变成日期表

Power BI用CALENDAR生成的就是日期表,不用特别声明

日历表的Date与入职日期为活动关系

日历表的Date与离职日期为非活动关系

hr统筹数据分析教程(BI人力资源分析模型之离职率计算)(6)

第三步:计算离职率需要的相关度量值

1、RS累计人数

RS = CALCULATE(COUNT('入职资料'[员工编号]),FILTER(ALL(Dimdate),Dimdate[PeriodNum]<=MAX(Dimdate[PeriodNum])))

从第一个入职的员工开始的入职日期表里的所有员工数量,包括离职员工

2、LZ离职员工

LZ = CALCULATE(COUNT('入职资料'[员工编号]),FILTER('入职资料',not(ISBLANK([离职日期]))))

离职日期不为空的员工数量,这个离职员工没有和日期表关联

3、Term本月离职员工

Term = CALCULATE([LZ],USERELATIONSHIP('入职资料'[离职日期],Dimdate[Date]))

使用USERELATIONSHIP函数,激活日期表与离职日期的关系

4、AllTerm累计离职员工

AllTerm = CALCULATE([LZ],USERELATIONSHIP('入职资料'[离职日期],Dimdate[Date]),FILTER(ALL(Dimdate),Dimdate[PeriodNum]<=max(Dimdate[PeriodNum])))

累积离职员工数量

5、Active在职员工

Active = CALCULATE([RS]-[AllTerm])

在职员工=人数-累计离职员工

6、ActSp上月的在职员工数

ActSp = CALCULATE([Active],PREVIOUSMONTH(Dimdate[Date]))

就是Active的上个月的值

7、New新入职员工数

New = CALCULATE([RS]-CALCULATE([RS],PREVIOUSMONTH(Dimdate[Date])))

新入职员工数=人数-上个月的人数

8、PT离职率

PT = CALCULATE([Term]/([ActSp] [New]))

这里用的离职率公式是:

离职率=离职人数/(期初在职人数 入职人数)

hr统筹数据分析教程(BI人力资源分析模型之离职率计算)(7)

Power BI中的可视化工作

直接引用这些度量值,就可以进行数据分析了。

,