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

Calling all Data Engineers! Fabric Data Engineer (Exam DP-700) live sessions are back! Starting October 16th. Sign up.

Reply
FourAnalysis
New Member

Simple financial Forecasting measure?

Hi!
I really tried hard for a longer time but now I'm dependend on your help I suppose :).
I'm currently creating a dashboard for monthly finance reportings. It's easy in Excel, but I struggle to implement it into PowerBI.
We want to add a simple Forecasting for our revenue.
It looks like this: 

FourAnalysis_0-1720528618174.png

The difference between Plannend and Reality is added on the Planned-Value of the next month. This is what we call "Forecast".
It's so simple, yet I can't get it to work.

I have the cumulative valies of Planned as:

Cumulative_Planned = CALCULATE([Planned_per month], FILTER(ALLSELECTED('Date-Table'),'Date-Table'[Date]<=MAX('Date-Table'[Date])))

and the same with the Reality values:
Cumulative_Reality = CALCULATE([Reality_Values], FILTER(ALLSELECTED('Date-Table),'Date-Table'[Date]<=MAX('Date-Table'[Date])))

I tried to get nearer to the forecasting value by creating some measures:
Forecasting_Difference =  [Reality_values] - [Planned_per_month]     ///now I have the difference
 
Cumulative_Forecasting_Difference = CALCULATE([Forecasting_Difference], FILTER(ALLSELECTED('Date-Table'),'Date-Table'[Date]<=MAX('Date-Table'[Date])))   /// now I have the differences cumulative
 
Forecasting = [Cumulative_Forecasting_Difference] + [Cumulative_Planned] // now I have the forecasting value

HOWEVER, PowerBI starts subtracting the difference between Planned and Reality in january already, so everything is mixed up a little bit.

 

FourAnalysis_2-1720529638772.png

 

 

What it should be:

FourAnalysis_0-1720529922572.png

I'd appreciate your help alot, as I really put more work into what seems as a really easy problem but for me (as a PowerBI beginner) it's really not!

Thanks!

1 ACCEPTED SOLUTION
Anonymous
Not applicable

Hi @FourAnalysis 

 

Please try this measure:

Forecasting =
VAR _vtable =
    SUMMARIZE (
        ALLSELECTED ( 'Date-Table' ),
        'Date-Table'[Month],
        'Date-Table'[Month Number],
        "__Planned", [Planned],
        "__Difference", [Forecasting Difference]
    )
VAR _vtable2 =
    ADDCOLUMNS (
        _vtable,
        "__Outcome",
            IF (
                MAXX (
                    FILTER ( _vtable, [Month Number] = EARLIER ( 'Date-Table'[Month Number] ) - 1 ),
                    [__Difference]
                )
                    <> BLANK (),
                [__Planned]
                    + MAXX (
                        FILTER ( _vtable, [Month Number] = EARLIER ( 'Date-Table'[Month Number] ) - 1 ),
                        [__Difference]
                    )
            )
    )
RETURN
    MAXX (
        FILTER ( _vtable2, [Month] = SELECTEDVALUE ( 'Date-Table'[Month] ) ),
        [__Outcome]
    )

 

I create a set of sample, and the result is as follow:

vzhengdxumsft_0-1720579376415.png

 

 

Best Regards

Zhengdong Xu
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

View solution in original post

2 REPLIES 2
FourAnalysis
New Member

Thanks alot! It looks much more complicated than I have thought it would look like.
Would not been able to have done this without your help, thanks alot!

Anonymous
Not applicable

Hi @FourAnalysis 

 

Please try this measure:

Forecasting =
VAR _vtable =
    SUMMARIZE (
        ALLSELECTED ( 'Date-Table' ),
        'Date-Table'[Month],
        'Date-Table'[Month Number],
        "__Planned", [Planned],
        "__Difference", [Forecasting Difference]
    )
VAR _vtable2 =
    ADDCOLUMNS (
        _vtable,
        "__Outcome",
            IF (
                MAXX (
                    FILTER ( _vtable, [Month Number] = EARLIER ( 'Date-Table'[Month Number] ) - 1 ),
                    [__Difference]
                )
                    <> BLANK (),
                [__Planned]
                    + MAXX (
                        FILTER ( _vtable, [Month Number] = EARLIER ( 'Date-Table'[Month Number] ) - 1 ),
                        [__Difference]
                    )
            )
    )
RETURN
    MAXX (
        FILTER ( _vtable2, [Month] = SELECTEDVALUE ( 'Date-Table'[Month] ) ),
        [__Outcome]
    )

 

I create a set of sample, and the result is as follow:

vzhengdxumsft_0-1720579376415.png

 

 

Best Regards

Zhengdong Xu
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

Helpful resources

Announcements
FabCon Global Hackathon Carousel

FabCon Global Hackathon

Join the Fabric FabCon Global Hackathon—running virtually through Nov 3. Open to all skill levels. $10,000 in prizes!

FabCon Atlanta 2026 carousel

FabCon Atlanta 2026

Join us at FabCon Atlanta, March 16-20, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.