我正在尝试获取员工信息并创建一个仪表板来跟踪逐月的员工人数。我有雇用日期、终止日期和转入日期的列。
我想要做的是在 PowerPivot 中编写一个度量,该度量将为我提供每个月的活跃人数(然后是新员工、调动和终止的人数),以便我可以将它们绘制在图表上以查看每个月的人数.
我遇到的问题是,我对活跃员工人数的衡量仅对每位员工进行一次计数,而不是每月对他们的活跃人数进行计数。前任。 2021 年 1 月雇用的所有员工都将计入数据透视表,但随后的几个月中,即使仍然活跃,也不会计入其中。
这是我现在正在使用的代码:
ActiveEmployees:=
CALCULATE(
COUNTROWS(TableName),
FILTER(
TableName,
(
NOT(ISBLANK([HireDate]) && [HireDate] < MAX(DimDate[Date])
)
&&
(
ISBLANK([TransferDate]) || [TransferDate] < MAX(DimDate[Date])
)
&&
(
ISBLANK([TermDate]) || [TermDate] > MAX(DimDate[Date])
)
)
)
我尝试了一些其他方法,例如使用 ALL(TableName) 和 VALUES(TableName[EmployeeID]) 但似乎没有任何效果。
任何帮助都会令人难以置信!
在这里再次发布代码。我几乎使用了一堆 ChatGPT 来帮助构思,这可能会让我走向完全错误的方向。
ActiveEmployees:=
CALCULATE(
COUNTROWS(TableName),
FILTER(
TableName,
(
NOT(ISBLANK([HireDate]) && [HireDate] < MAX(DimDate[Date])
)
&&
(
ISBLANK([TransferDate]) || [TransferDate] < MAX(DimDate[Date])
)
&&
(
ISBLANK([TermDate]) || [TermDate] > MAX(DimDate[Date])
)
)
)
我猜你在
TableName
和DimDate
之间有关系。如果是这样,您将需要在措施中满足这一点。
尝试
REMOVEFILTERS
:
ActiveEmployees:=
CALCULATE(
COUNTROWS(TableName),
REMOVEFILTERS(DimDate),
FILTER(
TableName,
(
NOT(ISBLANK([HireDate]) && [HireDate] < MAX(DimDate[Date])
)
&&
(
ISBLANK([TransferDate]) || [TransferDate] < MAX(DimDate[Date])
)
&&
(
ISBLANK([TermDate]) || [TermDate] > MAX(DimDate[Date])
)
)
)
或
ALL
:
ActiveEmployees:=
COUNTROWS(
FILTER(
ALL(TableName),
(
NOT(ISBLANK([HireDate]) && [HireDate] < MAX(DimDate[Date])
)
&&
(
ISBLANK([TransferDate]) || [TransferDate] < MAX(DimDate[Date])
)
&&
(
ISBLANK([TermDate]) || [TermDate] > MAX(DimDate[Date])
)
)
)