首页 > 解决方案 > 使用存储桶的 DAX 运行总计

问题描述

我是 Power BI/DAX 的新手,我无法让运行总计按我需要的方式工作。假设数据如下表:

User    month   sales
UserA   1/1/2019    1
UserB   1/1/2019    3
UserC   1/1/2019    2
UserA   2/1/2019    1
UserB   2/1/2019    3
UserC   2/1/2019    2
UserA   3/1/2019    1
UserB   3/1/2019    3
UserC   3/1/2019    2

我一直在环顾四周,发现以下公式可以满足我的需要:

AllSales = 
calculate(
    sum('table'[Sales]),
    filter(
        all ('table'),
        'table'[date] <= max ('table'[date])
        )
)

--

Total   6   12  18  18

当我想以矩阵形式看到用户分成桶时,问题就来了。当我这样做时,每个用户的销售数量是相同的:

UserA   6   12  18  18
UserB   6   12  18  18
UserC   6   12  18  18
Total   6   12  18  18

我想要的结果是这样的:

UserA   1   2   3   3
UserB   3   6   9   9
UserC   2   4   6   6
Total   6   12  18  18

我相信我理解为什么 ALL 功能会导致此问题,但我不知道如何调整它或切换到哪个功能以解决此问题。任何帮助将不胜感激。谢谢!

标签: powerbidax

解决方案


与其将 ALL 应用于整个表,不如将其仅应用于您需要的列:

AllSales =
CALCULATE (
    SUM ( 'table'[Sales] ),
    FILTER ( ALL ( 'table'[date] ), 'table'[date] <= MAX ( 'table'[date] ) )
)

推荐阅读