不同的周数,其中总和大于0 PowerPivot

时间:2017-05-04 13:29:05

标签: excel powerpivot dax

我有一个包含以下条件的表。多个项目有多个周结束。小时/成本列可以是正数或负数,并且是相关的(正小时/正成本)。如果有任何成本(+或 - ),我可以得到一个截止日期的项目,但我希望只有在小时数或成本总和为正数时才能得到明确的计数。

由于收费可以是+或 - ,并且可能在一周结束时取消,这将改变我的平均公式,如果计算一周的总和为0.

我正在尝试构建一个计算字段,我可以将其添加到我的Pivot表中,该表列出了按Project过滤的实际收费周数。在样本中,有4个唯一日期,总和大于0,但我目前的公式给出了7个独特的日期,无论正数和。

WeekEndDate |项目|小时|成本

Sample Data

+---------------+---------+--------+-------------+
| WeekEndDate | Project | Hours  |    Cost     |
+---------------+---------+--------+-------------+
| 10/7/16       | C7119A  |   2.00 | $122.00     |
| 10/7/16       | C7119A  |  32.00 | $1,952.00   |
| 10/7/16       | C7119A  |   1.50 | $91.50      |
| 10/7/16       | C7119A  | -32.00 | ($1,952.00) |
| 10/14/16      | C7119A  |  10.00 | $610.00     |
| 10/14/16      | C7119A  | -10.00 | ($610.00)   |
| 10/21/16      | C7119A  |  19.50 | $1,189.50   |
| 10/21/16      | C7119A  | -19.50 | ($1,189.50) |
| 10/28/16      | C7119A  |   2.00 | $122.00     |
| 10/28/16      | C7119A  |   3.00 | $183.00     |
| 10/28/16      | C7119A  |  -3.00 | ($183.00)   |
| 10/28/16      | C7119A  |  -2.00 | ($122.00)   |
| 11/4/16       | C7119A  |   1.00 | $61.00      |
| 11/11/16      | C7119A  |   3.50 | $213.50     |
| 1/13/17       | C7119A  |   3.00 | $183.00     |
+---------------+---------+--------+-------------+

1 个答案:

答案 0 :(得分:0)

您可以使用SUMMARIZE()执行此操作。

首先创建一个计算列,以便在项目/周组合中获得不同的ID:

ProjectWeek =CONCATENATE([Project],[Week End Date])

然后创建一个计算的度量来计算周数为正的小时数:

Positive Project Weeks:= COUNTROWS(Filter(ADDCOLUMNS(
SUMMARIZE('Project Costs','Project Costs'[Week End Date]), 
"WeekSum", MAXX(Values('Project Costs'[ProjectWeek]), 
    CALCULATE(Sum([Hours]),ALL('Project Costs'[Hours])))), 
[WeekSum] >0))

SUMMARIZE创建一个包含不同WeekEndDate值的表。 ADDCOLUMNS在该表中创建一个列,显示该WeekEndDate的小时数。 过滤器删除虚拟表中小于或等于0的小时数的行。 然后,Countrows计算表中剩余的行数,该行等于结束日期的不同计数。

如果您没有为ProjectWeek创建计算列,而是在MAXX(VALUES())函数中使用WeekEndDate,那么您将获得总计7而不是4。

enter image description here