PowerPivot DAX设置每组的最大值

时间:2015-01-15 03:09:56

标签: powerpivot dax

我正在撰写报告,需要报告每位员工的小时数。 但是,有些人的工作时间超过了Max Hours,在以下情况下,一笔简单的金额将不起作用...... 我尝试使用Min函数,但它只能用作列级... 我看到=计算函数应该可以工作,但我不知道如何写它...下面是例子:

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)

非常感谢你的帮助!

1 个答案:

答案 0 :(得分:0)

从一个名为hours的Measure开始,它只是对列进行求和:

=SUM(Table1[Work Hours])

此度量然后使用该总和并执行IF()以检查该人是否超过限制并返回适当的数字。 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相关的表。