Power BI 人力资源应用:动态计算年龄
2019年是一个临界点。嗯,最大的90后即将30岁,最大的80后即将40岁……
本文和年龄有那么一点关系。假设我们想查看30岁以下员工数量,通常可能导出人力系统中的员工信息,然后新建一列,如下计算:
但这有一个问题,此处的年龄是静态的截止到现在的年龄,如果我们想动态查看不同年份的30岁以下员工数量,例如如下:
请注意这个动画中的两个信息,首先每个人的年龄会随着年份的变化而自动变化。另外,左下方汇总的卡片图信息中,30岁以下员工数量也会随年份变化而变化。
或者,我们可能还需要按照年份查看30岁以下员工趋势,准备各个年份节点的HR数据再汇总会显然过于冗余。
那么,有没有更好的办法实现?其实在Power BI中实现该功能只要将年龄从列转换为度量值即可。
首先,将数据准备好,员工信息可从公司系统导出,日期表按照以下函数新建:
日期表 = CALENDAR(DATE(2015,1,1),DATE(2019,12,31))
日期表与员工信息表之间不要建立关系。然后新建年龄度量值(不是计算列):
年龄 = MAX('日期表'[年])-MAX('员工信息'[出生年份])
接着使用度量值计算30岁以下员工数量:
30岁以下员工数量 = CALCULATE ( [员工数量], FILTER ('员工信息', [年龄] < 30 ) )
图表使用Power BI默认的切片器、表格、柱形图、卡片图即可。
是不是非常简单?Excel使用Power Pivot也可以类似操作。现实中使用该方法可能会碰到另外的问题,比如每个时间段都有新人进入公司,都有员工离职,在职员工人数也是动态的,如何结合使用我们将会在另外的篇章说明。
参考资料:https://powerpivotpro.com/2015/01/dynamic-age-calculation-using-measures/
微信公众号:wujunmincn