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

时间:2016-12-19 08:57:18

标签: arrays excel powerpivot dax

我想将行的前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...

我添加了数组列只是为了说明如何组成总和的示例,请注意,从wk09开始,它不仅仅是一个运行总计。

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

1 个答案:

答案 0 :(得分:1)

两种方法:您可以创建计算列或度量。

对于专栏:

=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)))

以下是结果的屏幕截图。根据数学计算,示例表中的一些数字似乎已关闭:

enter image description here