DAX - 运行总计 - 多个Critiera +分组

时间:2015-05-06 09:10:45

标签: excel powerpivot dax

我到处寻找这个,但任何其他例子都不是我想要实现的。我的数据看起来像这样:

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组也进行计算。

2 个答案:

答案 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] )
) )