Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
imdshk
Regular Visitor

Cumulative total for non-date columns stop at the last value

Hi all,

 

I am trying to calculate cumulative total for the costs incured during the projects lifetime, but visualizing it based on the number of weeks to or past the deadline. I am having trouble stopping the cummulative total at the last value of that project. There are two data tables in the model

1. Cost_Data (data of all the cost incurred cost across projects)

2. Project_Data (project deadline date)

 

The Non-Cumulative Sum looks like this 

 

Non Cumulative SumNon Cumulative Sum

 

I created a calculated table Week_Lookup to get unique week numbers before/after deadline and the following cumulative measure

 

Cummulative Cost_Week = 

IF ( MIN ( Week_Lookup[Weeks Before Deadline] ) <= CALCULATE ( MAX ( Cost_Data[Weeks Before Deadline] ), ALL ( Cost_Data ) ),
CALCULATE (
SUM ( Cost_Data[Cost] ),
FILTER(
ALL ( Week_Lookup ),
Week_Lookup[Weeks Before Deadline] <= MAX ( Week_Lookup[Weeks Before Deadline] )
)
), BLANK()
)

 

When I use the measure in the table, the cumulative sum looks as below, which does not stop at the last available cost value of the week (it should stop before the red highlighted values), for instance in P3, the cumulative sum shall stop at -1 week (which has the last cost data), but it continues until the end. This behaivour is seen in other columns as well (P5 should be till -2 week etc.,) . Could anyone suggest a solution / alternative for this issue.

 

Cumulative Sum - WrongCumulative Sum - Wrong

 

Link to Power BI File:  https://1drv.ms/u/s!Ak7F5eFJkBTfgq4JsDXCKk_GTACI8Q?e=9Q47Sx

 

Thanks 🙂

1 ACCEPTED SOLUTION
parry2k
Super User
Super User

@imdshk update your measure as below

 

Cummulative Cost_Week = 
VAR __maxProjectWeek = CALCULATE( MAX ( Cost_Data[Weeks Before Deadline] ), ALL ( Week_Lookup[Weeks Before Deadline] ) )
VAR __flag = IF ( SELECTEDVALUE ( Week_Lookup[Weeks Before Deadline] ) <= __maxProjectWeek, 1 )
RETURN

IF ( MIN ( Week_Lookup[Weeks Before Deadline] ) <= CALCULATE ( MAX ( Cost_Data[Weeks Before Deadline] ), ALL ( Cost_Data ) ),
    CALCULATE ( 
        SUM ( Cost_Data[Cost] ),
        FILTER(
            ALL ( Week_Lookup ),
            Week_Lookup[Weeks Before Deadline] <= MAX ( Week_Lookup[Weeks Before Deadline] )
        )
    ), BLANK()
) * DIVIDE ( __flag, __flag )

 

and here is the output

 

image.png

 

I would  Kudos if my solution helped. 👉 If you can spend time posting the question, you can also make efforts to give Kudos whoever helped to solve your problem. It is a token of appreciation!

Visit us at https://perytus.com, your one-stop shop for Power BI related projects/training/consultancy.

 



Subscribe to the @PowerBIHowTo YT channel for an upcoming video on List and Record functions in Power Query!!

Learn Power BI and Fabric - subscribe to our YT channel - Click here: @PowerBIHowTo

If my solution proved useful, I'd be delighted to receive Kudos. When you put effort into asking a question, it's equally thoughtful to acknowledge and give Kudos to the individual who helped you solve the problem. It's a small gesture that shows appreciation and encouragement! ❤


Did I answer your question? Mark my post as a solution. Proud to be a Super User! Appreciate your Kudos 🙂
Feel free to email me with any of your BI needs.

View solution in original post

2 REPLIES 2
parry2k
Super User
Super User

@imdshk update your measure as below

 

Cummulative Cost_Week = 
VAR __maxProjectWeek = CALCULATE( MAX ( Cost_Data[Weeks Before Deadline] ), ALL ( Week_Lookup[Weeks Before Deadline] ) )
VAR __flag = IF ( SELECTEDVALUE ( Week_Lookup[Weeks Before Deadline] ) <= __maxProjectWeek, 1 )
RETURN

IF ( MIN ( Week_Lookup[Weeks Before Deadline] ) <= CALCULATE ( MAX ( Cost_Data[Weeks Before Deadline] ), ALL ( Cost_Data ) ),
    CALCULATE ( 
        SUM ( Cost_Data[Cost] ),
        FILTER(
            ALL ( Week_Lookup ),
            Week_Lookup[Weeks Before Deadline] <= MAX ( Week_Lookup[Weeks Before Deadline] )
        )
    ), BLANK()
) * DIVIDE ( __flag, __flag )

 

and here is the output

 

image.png

 

I would  Kudos if my solution helped. 👉 If you can spend time posting the question, you can also make efforts to give Kudos whoever helped to solve your problem. It is a token of appreciation!

Visit us at https://perytus.com, your one-stop shop for Power BI related projects/training/consultancy.

 



Subscribe to the @PowerBIHowTo YT channel for an upcoming video on List and Record functions in Power Query!!

Learn Power BI and Fabric - subscribe to our YT channel - Click here: @PowerBIHowTo

If my solution proved useful, I'd be delighted to receive Kudos. When you put effort into asking a question, it's equally thoughtful to acknowledge and give Kudos to the individual who helped you solve the problem. It's a small gesture that shows appreciation and encouragement! ❤


Did I answer your question? Mark my post as a solution. Proud to be a Super User! Appreciate your Kudos 🙂
Feel free to email me with any of your BI needs.

@parry2k  Thank you. This solves the issue 🙂 

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.