首页 > 解决方案 > 前 n 天中每一天的销售额总和的 DAX 公式

问题描述

给定Power BI 中包含三列DateCategorySales的FACT表,我正在寻找一个 DAX 函数,该函数每天返回其前n天的销售额总和。 假设n = 2,这意味着对于 2020 年 1 月 4 日,我的度量应该返回 2020 年 1 月 2 日和 2020 年 1 月 3 日的销售额总和。这是一个小例子:

Date        Category  Sales 
01/01/2020  A         1
01/01/2020  B         3
01/02/2020  B         2
01/03/2020  B         1
01/04/2020  A         0
01/05/2020  B         10
01/06/2020  B         7

我想要的是

Date        MyMeasure 
01/01/2020  0 
01/02/2020  4
01/03/2020  6
01/04/2020  3
01/05/2020  1
01/06/2020  10

然后我想使用类别作为过滤器,在我的例子中n是 365。

我尝试了以下

MyMeasure = 
VAR FROM_DATE =
    DATEADD ( FACT[DATE], 0, DAY )
VAR SALES_365 =
    CALCULATE (
        SUM ( FACT[SALES] ),
        DATESINPERIOD ( FACT[DATE], FROM_DATE, 365, DAY )
    )
RETURN
    SALES_365

但得到一个错误,即在需要单个值的地方提供了一个包含多个值的表。

标签: powerbidax

解决方案


错误出现在变量 FROM_DATE 中,其中 DATEADDD 返回一列日期而不是单个值。那就是说你真的不需要一个变量,你可以使用一个简单的减法和DATESBETWEEN(DateCol, DateFrom,DateTo)

MyMeasure = 
CALCULATE (
    SUM ( FACT[SALES] ),
    DATESBETWEEN('FACT'[DATE],MAX(FACT[DATE])-2,MAX(FACT[DATE])-1)
)

推荐阅读