如何使用两个日期列计算每月和每年的总人数?



我有一个名为Staff_Starters(https://www.dropbox.com/s/khowqfgytc6fvq8/data.csv?dl=0(的表,它连接到日期维度。

是否可以在Staff_Starters中创建一个计算列或度量值,该列或度量值对具有 DateEmployed 的每个人进行计数,并在具有Termination_Date时停止计数。

该公式将多次计算单个时间,直到其结束日期不等于当前日期。

我目前有一个名为 Staff_Starterts 的表,其中包含主要列:

  1. 员工编号
  2. 全名
  3. 就业日期
  4. Termination_Date
  5. 团队成员
  6. 地位
  7. 实践
  8. 地区
  9. 水平

[Starters, Leavers & Nett][1]

使用的公式:员工人数变动 = 计算( 计数(员工(, 过滤器(员工, 和(员工[雇用日期]<=MIN(Date_Dim[Calendar_Date](, Staff[Termination_Date]>=MAX(Date_Dim[Calendar_Date](

(((
Count = CALCULATE(                                   
COUNTROWS(data),
FILTER(data, 
AND(data[Date Employed]<MIN('Calendar'[Date]),
data[TerminationDate]>MAX('Calendar'[Date])
)
)
)

结果在

Date        Count
2017-01-01  85
2017-02-01  74
2017-03-01  58
2017-04-01  37

编辑:在回复评论时,解释如下。(引自MSDN(

CALCULATE

计算由指定筛选器修改的上下文中的表达式

COUNTROWS:(显而易见,但为了完整起见(

计算指定表或表达式定义的表中的行数

FILTER

返回一个表,该表表示另一个表或表达式的子集。

AND

检查两个参数是否为 TRUE。


AND(data[Date Employed]<MIN('Calendar'[Date]), 

仅包括在当前选定期间开始之前具有Date Employed的条目。

data[TerminationDate]>MAX('Calendar'[Date])

仅包括在当前选定期间结束后具有TerminationDate的条目。


这应该足以使度量调整为计算"离开者"、"启动者"等,只要您可以通过比较开始、终止和所选期间日期来定义它。

最新更新