cancel
Showing results for
Did you mean:

Grow your Fabric skills and prepare for the DP-600 certification exam by completing the latest Microsoft Fabric challenge.

Helper I

Subtract values from two rows in matrix

Hello,

Every week I get sales forecasts for which I have to compare the values. Sample model here:

I am looking for a way to show the changes between individual forecasts in quantitative and percentage terms, like in this Excel:

Thank you in advance for any tips.

Marcin

1 ACCEPTED SOLUTION
Community Support

Hi  @maart666 ,

``````Difference =
VAR thisforecastnum =
MIN ( Arkusz1[Forecast no] )
VAR thisforecast =
SUM ( Arkusz1[Qty] )
var lastforecastnum=CALCULATE(MAX('Arkusz1'[Forecast no]),FILTER(ALLSELECTED(Arkusz1),'Arkusz1'[Forecast no]<MAX('Arkusz1'[Forecast no])))
VAR lastforecast =
CALCULATE (
SUM ( Arkusz1[Qty] ),
Arkusz1[Forecast no] = lastforecastnum
)
RETURN
IF (
ISBLANK ( lastforecast ),
BLANK (),
thisforecast - lastforecast
)``````

And you will see:

For the related .pbix file,pls see attached.

Best Regards,
Kelly

5 REPLIES 5
Helper I

Thank you Kelly,

works perfect!

I salut you!

Marcin

Helper I

Hi Kelly,

it looks great accept one case, when in lastforecast there was no value (filed was empty), and in thisforecast is value, mesure do not count that diefference... Is it a way to clear that issue?

Thank you.

Marcin

Helper I

Thank you Pat!

It works perfectly when I compare data from subsequent forecasts. But if the forecasts are not consecutive e.g. 1 and 3 (I know I should mentioned this) the values are incorrect:

Could you help solve this problem?

Thank you.

Marcin

Community Support

Hi  @maart666 ,

``````Difference =
VAR thisforecastnum =
MIN ( Arkusz1[Forecast no] )
VAR thisforecast =
SUM ( Arkusz1[Qty] )
var lastforecastnum=CALCULATE(MAX('Arkusz1'[Forecast no]),FILTER(ALLSELECTED(Arkusz1),'Arkusz1'[Forecast no]<MAX('Arkusz1'[Forecast no])))
VAR lastforecast =
CALCULATE (
SUM ( Arkusz1[Qty] ),
Arkusz1[Forecast no] = lastforecastnum
)
RETURN
IF (
ISBLANK ( lastforecast ),
BLANK (),
thisforecast - lastforecast
)``````

And you will see:

For the related .pbix file,pls see attached.

Best Regards,
Kelly

Employee

This measure expression will give you the difference from the current forecast to the previous one.

Difference =
VAR thisforecastnum =
MIN ( Arkusz1[Forecast no] )
VAR thisforecast =
SUM ( Arkusz1[Qty] )
VAR lastforecast =
CALCULATE (
SUM ( Arkusz1[Qty] ),
Arkusz1[Forecast no] = thisforecastnum - 1
)
RETURN
IF (
ISBLANK ( lastforecast ),
BLANK (),
thisforecast - lastforecast
)

To get your % difference, just change the Return part using the same variable (e.g., DIVIDE(thisforecast - lastforecast, lastforecast)

Regards,

Pat

Did I answer your question? Mark my post as a solution! Kudos are also appreciated!