上一篇blog介绍了计算员工离职率的思路,但是用公式计算出来的结果却不正确,之所以产生该问题的原因在于Calendar表中的Date列与HR表中的Start Date列之间是可用的关联关系,当使用Date列对HR表进行过滤时,Date列实际上过滤的是Start Date列。这样,Power BI会先将Start Date是2018年的数据筛选出来,之后再过滤看哪些数据对应的End Date不为空,最后计算不为空的数据个数,这就导致该公式的计算结果是1,而不是3。
要解决该问题,就需要在End Date列和Calendar中的Date列建立起关联关系,之后通过USERELATIONSHIP函数来启用Calendar表中Date列与HR表中End Date列之间的关联关系,这样Power BI能按照End Date列来过滤数据,从而筛选出所需信息。
Separated Employees =
CALCULATE (
COUNT ( HRdata[Employee Id] ),
USERELATIONSHIP ( 'Calendar'[Date], HRdata[End Date] ),
NOT (
ISBLANK ( HRdata[End Date] )
)
)