Forum Discussion
Multiple Running totals
- 7 years ago
Hi Anonymous ,
For starting don't use the bidirectionallity of filter then create the following measures:
Savings sum = IF ( MIN ( 'Date'[Date] ) <= CALCULATE ( MAX ( Savings[Date] ); ALLSELECTED ( Savings) ); CALCULATE ( MAX ( Savings[Savings]); FILTER ( ALLSELECTED ( 'Date' ); 'Date'[Date] <= MAX ( 'Date'[Date] ) ) ) ) Certicate sum = IF ( MIN ( 'Date'[Date] ) <= CALCULATE ( MAX ( Certificate[Date] ); ALLSELECTED ( Certificate) ); CALCULATE ( MAX ( Certificate[Certificate] ); FILTER ( ALLSELECTED ( 'Date' ); 'Date'[Date] <= MAX ( 'Date'[Date] ) ) ) ) Checking sum = IF ( MIN ( 'Date'[Date] ) <= CALCULATE ( MAX ( Checking[Date] ); ALLSELECTED ( Checking) ); CALCULATE ( MAX ( Checking[Checking] ); FILTER ( ALLSELECTED ( 'Date' ); 'Date'[Date] <= MAX ( 'Date'[Date] ) ) ) )Final result is below:
Check also PBIX file attach.
Regards,
MFelix
- 7 years ago
Hi Anonymous ,
You are correct, because I used the MAX function on the values, need to pickup the maximum date and not maximum value.
Redo your measure to the following:
Savings sum = VAR Date_Selection = CALCULATE ( LASTDATE ( Savings[Date] ); FILTER ( ALL ( 'Date'[Date] ); 'Date'[Date] <= MAX ( 'Date'[Date] ) ) ) RETURN IF ( MIN ( 'Date'[Date] ) <= CALCULATE ( MAX ( Savings[Date] ); ALLSELECTED ( Savings ) ); CALCULATE ( SUM ( Savings[Savings] ); FILTER ( ALL ( 'Date'[Date] ); 'Date'[Date] = Date_Selection ) ) )Certicate sum = VAR Date_Selection = CALCULATE ( LASTDATE ( Certificate[Date] ); FILTER ( ALL ( 'Date'[Date] ); 'Date'[Date] <= MAX ( 'Date'[Date] ) ) ) RETURN IF ( MIN ( 'Date'[Date] ) <= CALCULATE ( MAX ( Certificate[Date] ); ALLSELECTED ( Certificate ) ); CALCULATE ( SUM ( Certificate[Certificate] ); FILTER ( ALL ( 'Date'[Date] ); 'Date'[Date] = Date_Selection ) ) )Checking sum = VAR Date_Selection = CALCULATE ( LASTDATE ( Checking[Date] ); FILTER ( ALL ( 'Date'[Date] ); 'Date'[Date] <= MAX ( 'Date'[Date] ) ) ) RETURN IF ( MIN ( 'Date'[Date] ) <= CALCULATE ( MAX ( Checking[Date] ); ALLSELECTED ( Checking) ); CALCULATE ( SUM ( Checking[Checking]); FILTER ( ALL ( 'Date'[Date] ); 'Date'[Date] = Date_Selection ) ) )See result below:
Also attached revised PBIX file.
Sorry for the misleading in the previous answer.
Regards,
MFelix
Thank you, This is working, but only when the values in the accounts are going up. If there is a drop in one of the accounts, it retains the largerst value.
Hi Anonymous ,
You are correct, because I used the MAX function on the values, need to pickup the maximum date and not maximum value.
Redo your measure to the following:
Savings sum = VAR Date_Selection =
CALCULATE (
LASTDATE ( Savings[Date] );
FILTER ( ALL ( 'Date'[Date] ); 'Date'[Date] <= MAX ( 'Date'[Date] ) )
)
RETURN
IF (
MIN ( 'Date'[Date] )
<= CALCULATE ( MAX ( Savings[Date] ); ALLSELECTED ( Savings ) );
CALCULATE (
SUM ( Savings[Savings] );
FILTER ( ALL ( 'Date'[Date] ); 'Date'[Date] = Date_Selection )
)
)
Certicate sum =
VAR Date_Selection =
CALCULATE (
LASTDATE ( Certificate[Date] );
FILTER ( ALL ( 'Date'[Date] ); 'Date'[Date] <= MAX ( 'Date'[Date] ) )
)
RETURN
IF (
MIN ( 'Date'[Date] )
<= CALCULATE ( MAX ( Certificate[Date] ); ALLSELECTED ( Certificate ) );
CALCULATE (
SUM ( Certificate[Certificate] );
FILTER ( ALL ( 'Date'[Date] ); 'Date'[Date] = Date_Selection )
)
)
Checking sum =
VAR Date_Selection =
CALCULATE (
LASTDATE ( Checking[Date] );
FILTER ( ALL ( 'Date'[Date] ); 'Date'[Date] <= MAX ( 'Date'[Date] ) )
)
RETURN
IF (
MIN ( 'Date'[Date] )
<= CALCULATE ( MAX ( Checking[Date] ); ALLSELECTED ( Checking) );
CALCULATE (
SUM ( Checking[Checking]);
FILTER ( ALL ( 'Date'[Date] ); 'Date'[Date] = Date_Selection )
)
)
See result below:
Also attached revised PBIX file.
Sorry for the misleading in the previous answer.
Regards,
MFelix