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

时间:2017-07-07 05:26:06

标签: powerbi dax

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

是否有可能在Staff_Starters中创建一个计算列或度量,它计算每个拥有DateEmployed&当它有Termination_Date时停止计数。

公式将计算个别多次,直到结束日期不等于当前日期。

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

  1. StaffID
  2. FullName
  3. DateEmployed
  4. Termination_Date
  5. 团队成员
  6. 状态
  7. 练习
  8. 地区
  9. 群集
  10. 等级
  11. [Starters,Leavers&实价] [1]

    使用的公式:人数变动=计算(   COUNTROWS(职员)   FILTER(员工,   AND(员工[约会日期]< = MIN(Date_Dim [Calendar_Date]),       人员[Termination_Date] GT; = MAX(DATE_DIM [CALENDAR_DATE]))))

1 个答案:

答案 0 :(得分:2)

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的条目。

这应该足以使这项措施适应数量&#34;离职者&#34;,&#34;初学者&#34;等等,只要您可以根据比较开始,终止和选定的期间日期来定义它。