Starting December 3, join live sessions with database experts and the Microsoft product team to learn just how easy it is to get started
Learn moreGet certified in Microsoft Fabric—for free! For a limited time, get a free DP-600 exam voucher to use by the end of 2024. Register now
Hi,
In powerBI desktop I am preparing a report in which i need compare the difference month by month. in my source data the month are in the same column, so I can't use simple difference function. the data are as below. and i need create difference between feb-jan, mar-feb, apr-mar and so on. How I better do it? thanks a lot in advance. (I am showing in excel, cause I can't share my report in powerbi, it is just to exemplify the issue)
Solved! Go to Solution.
Hi @Cynthia. In order for this to work, you need to do three things first:
After you do those things, create measures like the following
Current Month = SUM([Value])
Prior Month =
CALCULATE(
[Current Month]
PREVIOUSMONTH([Use the name of the date column from the date table])
)
MTM Difference = [Current Month] - [Prior Month]
Hope this helps!
Hi @Cynthia
I created the solution for you. Follow the logic in the attached pbix. Let me know if you have any questions. 🙂
Hi @littlemojopuppy ,
it worked! Thank you so much. I have accepted as solution.
Kind regards,
Cynthia
Hi @Cynthia all I did in the pbix was implement the suggestion I offered with creating date table, converting your text fields to actual dates, etc. That was the real solution 🙂 I marked that as the solution.
Hi @Cynthia ,
If you want to create formulas based on measure, the solution provided by @littlemojopuppy works. If there are still problems, please point it out.
Looking forward to your feedback.
Best Regards,
Henry
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
Hi @Cynthia ,
According to your description, refer to the following formula. If you don't want to categorize the item column, just delete 'Table'[Category] = EARLIER ( 'Table'[Category] ) from the formula.
Col_ =
VAR current_ =
MAX ( 'Table'[Date] )
VAR next_ =
CALCULATE (
MAX ( 'Table'[Value] ),
FILTER (
ALL ( 'Table' ),
'Table'[Date] > EARLIER ( 'Table'[Date] )
&& 'Table'[Category] = EARLIER ( 'Table'[Category] )
)
)
RETURN
next_ - 'Table'[Value]
Also note that the data field needs to be changed to a date type.
If the problem is still not resolved, please point it out. Looking forward to your reply.
Best Regards,
Henry
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
Hi @v-henryk-mstf ,
first, thank you so much for support and patience. I am not sure what was the issue, but when replacing the data it was still not leading to the results needed. Maybe I did something wrong. Maybe it is also related to the hierarchy levels that I have in category. I am a beginner, so I am not really sure. The proposal from user littlemojopuppy using measures worked. So I have accepted as solution.
Again, thank you very very much.
Kind regards,
Cynthia
Hi @v-henryk-mstf ,
first of all, thank you so much for your support and I apologize for late reply. Usually I have weekends for these tasks.
I have tried the suggestion you have sent me, but it is not returning the difference between feb-jan, then march-feb and so on. I could not identify yet which calculation it is actually doing. I believe I have chosen the correct table fields from my report to replace in the code you sent me.
Below I am forwarding the headers of the report, maybe it is more clarifying. I will be grateful if you could still support.
I need calculate the difference between act. cost in feb minus jan, then march-feb, then apr-march and so on. As in the screen shot below.
@v-henryk-mstf with all due respect, this solution doesn't remediate having a bad data model.
There is an inverse relationship between quality of the data model and the complexity of code to accommodate it. I suggested changing the data model to a more normalized relational structure and could solve the issue with three very simple measures totalling six lines of DAX. Your proposed solution - to this issue only - 12 lines of DAX. What happens with the user needs additional measures?
The underlying issue is the data model and unnecessary complexity in it. Fix that, this is a slam dunk. This forum shouldn't be just solving immediate problems...this should also be teaching as well. 🙂
Hi @Cynthia. In order for this to work, you need to do three things first:
After you do those things, create measures like the following
Current Month = SUM([Value])
Prior Month =
CALCULATE(
[Current Month]
PREVIOUSMONTH([Use the name of the date column from the date table])
)
MTM Difference = [Current Month] - [Prior Month]
Hope this helps!
Hi @littlemojopuppy ,
firstly, thank you very much for your support and apologies for my late response. I work on it on weekends.
I have tried to apply your suggestion but without success. I will still try to find the error I am probably doing when following the reasoning. I have just started. I will give you a more assertive response if I find the mistake when replacing the data.
Thank you very much.
Kind regards,
Cinthia
Hi @Cynthia
I created the solution for you. Follow the logic in the attached pbix. Let me know if you have any questions. 🙂
Starting December 3, join live sessions with database experts and the Fabric product team to learn just how easy it is to get started.
March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount! Early Bird pricing ends December 9th.
User | Count |
---|---|
93 | |
89 | |
83 | |
75 | |
49 |
User | Count |
---|---|
142 | |
140 | |
110 | |
69 | |
55 |