PowerPivot DAX 设置每组的最大值

PowerPivot DAX Set the Maximum Value Per Group

我正在处理一份报告,需要报告每位员工的工时。 但是,有些人的工作时间超过了 Max Hours,在以下情况下简单求和将不起作用...... 我尝试使用 Min 函数,但它仅适用于列级别...... 我看到 =calculation 函数应该可以工作,但我不确定如何编写它...下面是示例:

Staff ID    Date            Work Hours
A001        5-Jan-2015      8           
A001        6-Jan-2015      8
A001        7-Jan-2015      8
A001        8-Jan-2015      8
A001        9-Jan-2015      8
A002        5-Jan-2015      7           
A002        6-Jan-2015      7
A002        7-Jan-2015      6
A002        8-Jan-2015      7
A002        9-Jan-2015      6

Staff ID    Staff Name      Max Hours Per Week
A001        Person A        35
A002        Person B        35


Output:
Staff ID    Hours
A001        35      (instead of 40)
A002        33      (7+7+6+7+6)

非常感谢您的帮助!

从名为 hours 的 Measure 开始,该 Measure 只是对列求和:

=SUM(Table1[Work Hours])

此度量然后使用该总和并执行 IF() 来检查此人是否超过限制和 returns 适当的数字。 SUMX() 遍历每个人,以便为您提供正确的总数。

=
SUMX (
VALUES ( Table1[Staff ID] ),
IF (
    [Hours] > VALUES ( Table2[Max Hours Per Week] ),
    VALUES ( Table2[Max Hours Per Week] ),
    [Hours]
   )
      )

假设您有 2 个表,名为 table1 和 2,它们与员工 ID 相关。