Laufende Summe (RunningTotal) in DAX
Auf die Frage nach der laufenden Summe (RunningTotal) in DAX finden sich einige Hilfreiche Blogs mit Lösungsmöglichkeiten. Grundsätzlich unterscheiden kann man zwischen einer Lösung als Calculated Measure und einer als Calculated Column. Welcher Lösung der Vorzug geschenkt werden sollte möchte ich hier zur Diskussion stellen. Aus meiner Sicht gibt es neben dem grundsätzlichen Unterschied Column oder Measure auch noch Unterschiede in der Reihenfolge der Filter. Vor allem für große Datenvolumina würden mich Laufzeitunterschiede interessiern. Also posted Eure Erfahrungen hier.
Beispiel Tabelle
TID | Account | Value |
---|---|---|
1 | A | 100 |
2 | B | 200 |
3 | C | 200 |
4 | A | 10 |
5 | B | 100 |
6 | C | 200 |
7 | A | 300 |
8 | B | 230 |
9 | C | 160 |
10 | A | 90 |
11 | B | 20 |
Calc als Column
=SUMX(FILTER(TX;[TID]<=EARLIER([TID])&&[Account]=EARLIER([Account]));[Value])
Calc als Measure
MRunTotal:=IF( COUNTROWS( VALUES( TX[TID]) ) = 1;
CALCULATE( SUM( TX[Value] );
Filter(All(TX);TX[TID]<=VALUES(TX[TID]));
Filter(All(TX);TX[Account]=VALUES(TX[Account]))
))
Sample Excel Datei