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