我到处寻找这个,但任何其他例子都不是我想要实现的。我的数据看起来像这样:
Day Group Sales
14 1 15
13 0 22
14 1 17
等等。现在我使用以下公式创建Running Total的计算字段:
CALCULATE (
SUM(Table[Sales]),
FILTER (
ALL (table),
Table[Date] <= MAX(Table[Date])
)
)
我创建数据透视表并将日期和组作为行,然后将总计作为值运行。为什么不为每个组单独汇总运行总计?我希望第1组进行计算,第0组也进行计算。
答案 0 :(得分:2)
为每个组单独汇总运行总计的原因是因为您的公式不完整。您刚刚使用了FILTER的ALL功能。 ALL将意味着您将忽略现有的过滤器上下文。因此,在具有组0的行上,您将忽略组0过滤器。
我认为您想要的是保留群组过滤器。您可以将ALL (table),
替换为ALLEXCEPT(table,table[Group]),
或ALL(table[Date]),
来实现此目的。这两个都将为Group行提供一个运行总计,因此您将获得Group 0的运行总计和Group 1的运行总计。
如果您要查找的是总计按日期和组累计的总计,您可以保留所有并为FILTER添加额外的表达式:
CALCULATE (
SUM ( table[Sales] ),
FILTER (
ALL ( table ),
table[Date] <= MAX ( table[Date] )
&& table[Group] <= MAX ( table[Group] )
)
)
答案 1 :(得分:0)
我使用下面的代码,它对我有用
CALCULATE (
SUM ( table[Sales] ),
FILTER (
ALL ( table ),
table[Date] <= MAX ( table[Date] )
&& table[Group] = MAX ( table[Group] )
) )