我有一个名为Staff_Starters(https://www.dropbox.com/s/khowqfgytc6fvq8/data.csv?dl=0(的表,它连接到日期维度。
是否可以在Staff_Starters中创建一个计算列或度量值,该列或度量值对具有 DateEmployed 的每个人进行计数,并在具有Termination_Date时停止计数。
该公式将多次计算单个时间,直到其结束日期不等于当前日期。
我目前有一个名为 Staff_Starterts 的表,其中包含主要列:
- 员工编号
- 全名
- 就业日期
- Termination_Date
- 团队成员
- 地位
- 实践
- 地区
- 簇
- 水平
[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
的条目。
这应该足以使度量调整为计算"离开者"、"启动者"等,只要您可以通过比较开始、终止和所选期间日期来定义它。