尝试计算逐月员工人数,但 DAX 指标仅计算 EmployeeID 一次

问题描述 投票:0回答:1

我正在尝试获取员工信息并创建一个仪表板来跟踪逐月的员工人数。我有雇用日期、终止日期和转入日期的列。

我想要做的是在 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])
  )
 )
)
dax powerpivot
1个回答
0
投票

我猜你在

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])
  )
 )
)
© www.soinside.com 2019 - 2024. All rights reserved.