Freigeben über


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

https://sdrv.ms/P6x9lJ