使用 DAX 计算前几个月的活跃员工人数
Calculating the number of active employees as at previous months with DAX
我想知道是否有一种方法可以使用开始日期/终止日期来计算活跃员工的数量,而无需创建每日快照 table。
员工table是这样的:
Emp_ID. Start Date Termination Date other columns
显然 Dim_date 和往常一样:
Date_key Date Year. Month. Etc...
员工 table 通过开始日期字段连接到 Dim_Date,因此如果我们使用像这样的 DAX 公式:
ActiveEmps =
CALCULATE (
COUNTX (
FILTER (
employee,
[start date] < MIN ( Dim_Date[Date] )
&& [Termination Date] > MAX ( Dim_Date[Date] )
),
Emp_ID
)
,other filters within calculate context)
它不起作用,原因是它只计算开始日期在所选时间段内的在职员工。 (因为关系)
我会这样做的:
ActiveEmps :=
VAR ThisDate =
MIN( Dim_Date[Date] )
RETURN
CALCULATE(
COUNTROWS( employee ),
FILTER(
ALL( employee ),
employee[Start Date] < ThisDate
&& employee[Termination Date] > ThisDate
)
)
我想知道是否有一种方法可以使用开始日期/终止日期来计算活跃员工的数量,而无需创建每日快照 table。
员工table是这样的:
Emp_ID. Start Date Termination Date other columns
显然 Dim_date 和往常一样:
Date_key Date Year. Month. Etc...
员工 table 通过开始日期字段连接到 Dim_Date,因此如果我们使用像这样的 DAX 公式:
ActiveEmps =
CALCULATE (
COUNTX (
FILTER (
employee,
[start date] < MIN ( Dim_Date[Date] )
&& [Termination Date] > MAX ( Dim_Date[Date] )
),
Emp_ID
)
,other filters within calculate context)
它不起作用,原因是它只计算开始日期在所选时间段内的在职员工。 (因为关系)
我会这样做的:
ActiveEmps :=
VAR ThisDate =
MIN( Dim_Date[Date] )
RETURN
CALCULATE(
COUNTROWS( employee ),
FILTER(
ALL( employee ),
employee[Start Date] < ThisDate
&& employee[Termination Date] > ThisDate
)
)