Forum Discussion

andy291086's avatar
andy291086
Frequent Visitor
2 years ago
Solved

DAX Logic for Calculating Rolling Sum

Hi Team, 

 

I am new to Power BI and DAX. I had been assigned to convert an Excel report into Power BI which has the following calculations. 

 

I am stuck up with the calculations for Behind , which is based on the excel formula , Prior Behind Days + ( Target Days - Rolling Average Days) / Weeks left. Behind Days for Week 1 is 0 . 

 

For .e,g, for Week 3, the behind is calculated as 0.5 + (350 - 295.67)/49 = 1.6, 

 

Can you please help ?

 

Cheers, 

Andy

 

 

  • Anonymous's avatar
    Anonymous
    2 years ago

    Hi andy291086 ,

    I created a sample pbix file(see the attachment) for you, please check if that is what you want.

    Week Number = VALUE(RIGHT('Table'[Week], LEN('Table'[Week]) - 5))
    Column = 
    VAR _preweek =
        CALCULATE (
            MAX ( 'Table'[Week Number] ),
            FILTER ( 'Table', 'Table'[Week Number] < EARLIER ( 'Table'[Week Number] ) )
        )
    VAR _prewbdays =
        CALCULATE (
            MAX ( 'Table'[Behind Days] ),
            FILTER ( 'Table', 'Table'[Week Number] = _preweek )
        )
    RETURN
        _prewbdays + ( 'Table'[Target Days] - [Rolling Average - Days] ) / 'Table'[Weeks Left]

    Best Regards

1 Reply

  • Anonymous's avatar
    Anonymous
    Not applicable

    Hi andy291086 ,

    I created a sample pbix file(see the attachment) for you, please check if that is what you want.

    Week Number = VALUE(RIGHT('Table'[Week], LEN('Table'[Week]) - 5))
    Column = 
    VAR _preweek =
        CALCULATE (
            MAX ( 'Table'[Week Number] ),
            FILTER ( 'Table', 'Table'[Week Number] < EARLIER ( 'Table'[Week Number] ) )
        )
    VAR _prewbdays =
        CALCULATE (
            MAX ( 'Table'[Behind Days] ),
            FILTER ( 'Table', 'Table'[Week Number] = _preweek )
        )
    RETURN
        _prewbdays + ( 'Table'[Target Days] - [Rolling Average - Days] ) / 'Table'[Weeks Left]

    Best Regards