总和大于 0 的不同周数 PowerPivot
Distinct Count of weeks where sum is greater than 0 PowerPivot
我有一个 table 以下 criteria.There 是多个项目的多周结束。 hour/cost 列可以是正数或负数并且是相关的(正数 hours/positive 成本)。如果项目有任何成本(+ 或-),我能够得到项目结束的周数的不同计数,但只有当小时或成本的总和为正时,我才想得到一个不同的计数。
由于费用可以是 + 或 -,并且可能会在一周结束时抵消,如果计算总和为 0 的一周,这将改变我的平均公式。
我正在尝试构建一个计算字段,我可以将其添加到我的数据透视表 table 中,该字段列出了我按项目筛选时的实际收费周数。在示例中,有 4 个唯一日期的总和大于 0,但我当前的公式给了我 7 个唯一日期,忽略了正和。
周末日期|项目 |营业时间 |费用
Sample Data
+---------------+---------+--------+-------------+
| WeekEndDate | Project | Hours | Cost |
+---------------+---------+--------+-------------+
| 10/7/16 | C7119A | 2.00 | 2.00 |
| 10/7/16 | C7119A | 32.00 | ,952.00 |
| 10/7/16 | C7119A | 1.50 | .50 |
| 10/7/16 | C7119A | -32.00 | (,952.00) |
| 10/14/16 | C7119A | 10.00 | 0.00 |
| 10/14/16 | C7119A | -10.00 | (0.00) |
| 10/21/16 | C7119A | 19.50 | ,189.50 |
| 10/21/16 | C7119A | -19.50 | (,189.50) |
| 10/28/16 | C7119A | 2.00 | 2.00 |
| 10/28/16 | C7119A | 3.00 | 3.00 |
| 10/28/16 | C7119A | -3.00 | (3.00) |
| 10/28/16 | C7119A | -2.00 | (2.00) |
| 11/4/16 | C7119A | 1.00 | .00 |
| 11/11/16 | C7119A | 3.50 | 3.50 |
| 1/13/17 | C7119A | 3.00 | 3.00 |
+---------------+---------+--------+-------------+
您可以使用 SUMMARIZE() 执行此操作。
首先创建一个计算列以获得 project/week 组合的不同 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 值的 table。
ADDCOLUMNS 在 table 中创建一个列,显示该 WeekEndDate 的总小时数。
过滤器会删除虚拟 table 中总小时数小于或等于 0 的行。
Countrows 然后计算 table 中剩余的行数,这等于结束日期的不同计数。
如果您不为 ProjectWeek 创建计算列而是在 MAXX(VALUES()) 函数中使用 WeekEndDate,您将得到总共 7 个而不是 4 个。
我有一个 table 以下 criteria.There 是多个项目的多周结束。 hour/cost 列可以是正数或负数并且是相关的(正数 hours/positive 成本)。如果项目有任何成本(+ 或-),我能够得到项目结束的周数的不同计数,但只有当小时或成本的总和为正时,我才想得到一个不同的计数。
由于费用可以是 + 或 -,并且可能会在一周结束时抵消,如果计算总和为 0 的一周,这将改变我的平均公式。
我正在尝试构建一个计算字段,我可以将其添加到我的数据透视表 table 中,该字段列出了我按项目筛选时的实际收费周数。在示例中,有 4 个唯一日期的总和大于 0,但我当前的公式给了我 7 个唯一日期,忽略了正和。
周末日期|项目 |营业时间 |费用
Sample Data
+---------------+---------+--------+-------------+
| WeekEndDate | Project | Hours | Cost |
+---------------+---------+--------+-------------+
| 10/7/16 | C7119A | 2.00 | 2.00 |
| 10/7/16 | C7119A | 32.00 | ,952.00 |
| 10/7/16 | C7119A | 1.50 | .50 |
| 10/7/16 | C7119A | -32.00 | (,952.00) |
| 10/14/16 | C7119A | 10.00 | 0.00 |
| 10/14/16 | C7119A | -10.00 | (0.00) |
| 10/21/16 | C7119A | 19.50 | ,189.50 |
| 10/21/16 | C7119A | -19.50 | (,189.50) |
| 10/28/16 | C7119A | 2.00 | 2.00 |
| 10/28/16 | C7119A | 3.00 | 3.00 |
| 10/28/16 | C7119A | -3.00 | (3.00) |
| 10/28/16 | C7119A | -2.00 | (2.00) |
| 11/4/16 | C7119A | 1.00 | .00 |
| 11/11/16 | C7119A | 3.50 | 3.50 |
| 1/13/17 | C7119A | 3.00 | 3.00 |
+---------------+---------+--------+-------------+
您可以使用 SUMMARIZE() 执行此操作。
首先创建一个计算列以获得 project/week 组合的不同 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 值的 table。 ADDCOLUMNS 在 table 中创建一个列,显示该 WeekEndDate 的总小时数。 过滤器会删除虚拟 table 中总小时数小于或等于 0 的行。 Countrows 然后计算 table 中剩余的行数,这等于结束日期的不同计数。
如果您不为 ProjectWeek 创建计算列而是在 MAXX(VALUES()) 函数中使用 WeekEndDate,您将得到总共 7 个而不是 4 个。