通常状况下,人力资源系统中下载的都是最新的花名册。如果系统中没有自动保存历史版本的话,对于人力数据分析来说确实是一个噩梦。但是我们可以使用最新花名册,利用Prep推算出任意历史时期的花名册。首先,我们先把整个流程放出来。
这个过程需要两个数据源,一个是最新的员工花名册
另一个是日期范围
这个案例里,我们使用一个2021年11月30日的花名册,计算出11月1日-30日共30天的所有历史花名册。
首先需要补全花名册的离职日期,方便后续计算。
同样,日期数据源也需要补全缺失的所有日期。这里可以使用“新行”工具。
如果通过写程序来完成这个计算过程的话,应该需要写循环语句,但是Prep中不可能使用循环的方式。所以这个过程我们分解成两步,第一步构造笛卡尔积,第二步判断笛卡尔积的结果,哪些行保留哪些行删除。
为了构造两个数据源的笛卡尔积,需要为两个数据源新建link字段。
然后,将两个数据源联接,联接条件选择link字段,形成一个笛卡尔积的结果,我们这个案例中最终形成了一个新的570行的数据。
最后需要通过“日期”字段与“入职日期”和“离职日期补全”字段进行比较,判断每日的在职状态。判断出的“未入职”和“已离职”两个状态显然是我们不需要的,所以最终要删除。
最后得到的结果就是所有历史花名册的汇总表。比如我们选择66550这个员工,他11月1日入职,11月3日离职,所以只有三行数据。
而66548这个员工一直都在职,所以有30行数据。
但是这个方法有两个重要的缺陷,使用中要格外注意。
第一,计算出的花名册只有静态信息是准确的,例如数据源中的“职级”信息只可能是最新的,如果计算期间“职级”发生过变化,这个变化是无法计算出来的,需要通过“职务变更记录”单独进行计算。
第二,员工花名册必需是全量的。比如,某些大型集团公司不同业务板块之间的人员内部调动,会造成调出公司的最新花名册中没有了相应员工的信息,只有调入公司才有该员工信息,所以对于调出公司来说也就无法计算出该员工的历史信息,也需要单独进行处理。
网友评论