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 中的一些数字似乎不正确:
我想将一行的前 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 中的一些数字似乎不正确: