Powerbi 计算最高级别和部门级别的员工流动率

Powerbi 计算最高级别和部门级别的员工流动率,powerbi,dax,Powerbi,Dax,我偶然发现了一篇关于计算员工离职率的好文章()。不幸的是,我的数据不是这样的(不是一直都是这样吗?)。我的数据包括职位和状态以及每个职位的日期。每个记录都有一个生效日期范围。看起来是这样的(使用与上述网站相同的数据): 员工开始日期 员工离职日期 职位ID 职位开始日期 职位结束日期 部门 地位 生效日期 生效日期 员工ID 2018-02-03 2019-09-05 Jo01 2018-02-03 2018-08-31 部门1 PT 2018-02-03 2018-03-15 约翰 2018-

我偶然发现了一篇关于计算员工离职率的好文章()。不幸的是,我的数据不是这样的(不是一直都是这样吗?)。我的数据包括职位和状态以及每个职位的日期。每个记录都有一个生效日期范围。看起来是这样的(使用与上述网站相同的数据):

员工开始日期 员工离职日期 职位ID 职位开始日期 职位结束日期 部门 地位 生效日期 生效日期 员工ID 2018-02-03 2019-09-05 Jo01 2018-02-03 2018-08-31 部门1 PT 2018-02-03 2018-03-15 约翰 2018-02-03 2019-09-05 Jo01 2018-02-03 2018-08-31 部门1 英尺 2018-03-16 2018-08-31 约翰 2018-02-03 2019-09-05 Jo02 2018-09-01 2019-09-05 Dept2 英尺 2018-09-01 2019-09-05 约翰 2018-05-07 2018-10-10 Al01 2018-05-07 2018-10-10 部门1 PT 2018-05-07 2018-05-31 艾伦 2018-05-07 2018-10-10 Al01 2018-05-07 2018-10-10 部门1 英尺 2018-06-01 2018-10-10 艾伦 2019-01-08 2019-05-09 Li01 2019-01-08 2019-05-09 Dept2 英尺 2019-01-08 2019-05-09 利兹 2018-05-05 9999-12-31 Ma01 2018-05-05 2018-12-31 Dept3 PT 2018-05-05 2018-09-30 马特 2018-05-05 9999-12-31 Ma01 2018-05-05 2018-12-31 Dept3 英尺 2018-10-01 2018-12-31 马特 2018-05-05 9999-12-31 Ma02 2019-01-01 9999-12-31 Dept2 PT 2019-01-01 9999-12-31 马特 2019-03-02 9999-12-31 An01 2019-03-02 9999-12-31 Dept2 英尺 2019-03-02 9999-12-31 安 2019-05-07 9999-12-31 Sa01 2019-05-07 9999-12-31 Dept3 英尺 2019-05-07 9999-12-31 萨曼莎
我明白了。首先,我创建了一个基本度量来统计不同的员工:

# Distinct Employees = DISTINCTCOUNT( Table1[Employee ID] )
然后,我创建了两个度量来计算“当前”员工的数量和12个月前的员工数量(这是最简单的部分):

#截至日期工作的员工=
VAR CYEndDate=MAX(日期[完整日期])
返回
算计(
[#不同的员工],
表1【生效开始日期】=截止日期
)
#截至12个月前工作的员工=
VAR PYEndDate=LASTDATE(DATEADD(日期[完整日期],-1,年))
返回
算计(
[#不同的员工],
表1【生效开始日期】=PYEndDate
)
现在,我最头疼的部分是为过去12个月内被任命的员工制定衡量标准。我需要能够筛选HR表,以便在检查它们是否符合条件之前只包含那些与筛选匹配的记录。以下是我创建的似乎有效的措施:

# Employees Termed as of Date over 12 months = 
VAR CYEndDate = MAX( Dates[Full_Date] )
VAR PYEndDate = LASTDATE( DATEADD( Dates[Full_Date], -1, YEAR ) )

VAR PersonMaxRecordID = 
    ADDCOLUMNS(
        GROUPBY(
            FILTER( 
                Table1,
                Table1[Effective Start Date] <= CYEndDate && Table1[Effective End Date] >= PYEndDate
            ),
            Table1[Campus ID]
        ),
        "MaxRecordID", CALCULATE( MAX( Table1[Record ID] ) )
    )
    RETURN
        CALCULATE(
            [# Distinct Employees],
            TREATAS( PersonMaxRecordID, Table1[Campus ID], Table1[Record ID] ),
            Table1[Effective End Date] <= CYEndDate
        )
#截止日期超过12个月的员工=
VAR CYEndDate=MAX(日期[完整日期])
VAR PYEndDate=LASTDATE(DATEADD(日期[完整日期],-1,年))
VAR PersonMaxRecordID=
添加列(
群比(
过滤器(
表1,
表1【生效开始日期】=PYEndDate
),
表1[校园ID]
),
“MaxRecordID”,计算(最大值(表1[记录ID]))
)
返回
算计(
[#不同的员工],
TREATAS(PersonMaxRecordID,表1[校园ID],表1[记录ID]),
表1[生效截止日期]
# Employees Termed as of Date over 12 months = 
VAR CYEndDate = MAX( Dates[Full_Date] )
VAR PYEndDate = LASTDATE( DATEADD( Dates[Full_Date], -1, YEAR ) )

VAR PersonMaxRecordID = 
    ADDCOLUMNS(
        GROUPBY(
            FILTER( 
                Table1,
                Table1[Effective Start Date] <= CYEndDate && Table1[Effective End Date] >= PYEndDate
            ),
            Table1[Campus ID]
        ),
        "MaxRecordID", CALCULATE( MAX( Table1[Record ID] ) )
    )
    RETURN
        CALCULATE(
            [# Distinct Employees],
            TREATAS( PersonMaxRecordID, Table1[Campus ID], Table1[Record ID] ),
            Table1[Effective End Date] <= CYEndDate
        )