Powerpivot 2016 测量使用 DAX 对数组求和

Powerpivot 2016 measure using DAX to sum an array

我想将一行的前 7 个值相加作为度量,如下所示:

| Wk_number | Value A | Measure |   Array |
-------------------------------------------
|        01 |       1 |   N/A#  |   N/A#  |
|        02 |       1 |       1 |    {01} |
|        03 |      10 |       2 | {01-02} |  
|        04 |       3 |      12 | {01-03} |
|        05 |       5 |      15 | {01-04} |
|        06 |      10 |      20 | {01-05} |
|        07 |       1 |      30 | {01-06} |
|        08 |       4 |      31 | {01-07} |
|        09 |     -10 |      34 | {02-08} |
|        10 |       3 |      26 | {03-09} |
|        11 |       2 |      18 | {04-10} |
etc...

我添加数组列只是为了阐明示例中总和的组成方式,请注意,从第 09 周开始,它不仅仅是一个 运行 总数。

如何使用 DAX 语句执行此操作?

执行此操作的两种方法:您可以创建计算列或度量。

对于专栏:

=CALCULATE(SUM([Value A]),FILTER(Table,Table[Wk_number]<EARLIER(Table[Wk_number]) && Table[Wk_number] >= (EARLIER(Table[Wk_number])-7)))

对于度量,这是一个非常相似的公式,但我们不使用 EARLIER(),而是使用 MAX():

=CALCULATE(SUM([Value A]),FILTER(ALL(Table3),Table3[Wk_number]<MAX(Table3[Wk_number]) && Table3[Wk_number] >= (MAX(Table3[Wk_number])-7)))

下面是结果的截图。根据数学计算,您的示例 table 中的一些数字似乎不正确: