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
Jack_Fan2309
Frequent Visitor

Calculate last 12 months data and MOM% in Power Bi

Hi, 

I wanna display Last 12 months sales data and those MOM% and using an other slicer for time selection. 
Here is what I'd like to show in Power BI: 

Jack_Fan2309_1-1679021940677.png

 

I am able to achieve Last 12 months sales by using "DATESINPERIOD" function but now I am struggling with those MOM%. The DAX I used as follows.


Any help is appreciated
Regards,

Jack

 

Last 12 month MOM% =
VAR _Currentdate =
DATE ( SELECTEDVALUE ( 'Date'[Year] ), SELECTEDVALUE ( 'Date'[Month] ), 1 )
VAR _Last12month =
CALCULATE (
SUM ( 'Sales'[Actual] ),
DATESINPERIOD ( 'Date'[Date], _Currentdate, - 12, MONTH )
)
VAR _PREV_MONTH =
CALCULATE ( _Last12month, DATEADD ( 'Date'[Date], -1, MONTH ) )
RETURN
_PREV_MONTH

2 REPLIES 2
Jihwan_Kim
Super User
Super User

Hi,

I am not sure if I understood your question correctly, but please try something like below whether it works in your datamodel.

 

Last 12 month MOM% fix =
VAR _Currentdatemonthstart =
    DATE ( SELECTEDVALUE ( 'Date'[Year] ), SELECTEDVALUE ( 'Date'[Month] ), 1 )
VAR _Currentdateprevmonthstart =
    IF (
        SELECTEDVALUE ( 'Date'[Month] ) <> 1,
        DATE ( SELECTEDVALUE ( 'Date'[Year] ), SELECTEDVALUE ( 'Date'[Month] ) - 1, 1 ),
        DATE ( SELECTEDVALUE ( 'Date'[Year] ) - 1, 12, 1 )
    )
VAR _Last12month =
    CALCULATE (
        SUM ( 'Sales'[Actual] ),
        DATESINPERIOD ( 'Date'[Date], _Currentdatemonthstart, - 12, MONTH )
    )
VAR _PREV_MONTH_12month =
    CALCULATE (
        SUM ( 'Sales'[Actual] ),
        DATESINPERIOD ( 'Date'[Date], _Currentdateprevmonthstart, - 12, MONTH )
    )
RETURN
    DIVIDE ( _Last12month - _PREV_MONTH_12month, _PREV_MONTH_12month )

 

If this post helps, then please consider accepting it as the solution to help other members find it faster, and give a big thumbs up.


Go to My LinkedIn Page


Dear Kim, 

 

Thanks so much for your reply. I have just tried with your suggestion but the results as the following photo.  Maybe I haven't solved my problem yet. 

 

I have used three Measures as follows: 

 1.  Monthly Sales =
VAR _Currentdatemonthstart = DATE ( SELECTEDVALUE ( 'Date'[Year] ), SELECTEDVALUE ('Date'[Month] ), 1 )
VAR _Last12month = CALCULATE (SUM ( 'Sales'[Actual] ),DATESINPERIOD ( 'Date'[Date], _Currentdatemonthstart, - 12, MONTH ))
RETURN
_Last12month 

 

2.  Previous Month Sales =
VAR _Currentdateprevmonthstart = IF (SELECTEDVALUE ( 'Date'[Month] ) <> 1,
DATE ( SELECTEDVALUE ( 'Date'[Year] ), SELECTEDVALUE ( 'Date'[Month] ) - 1, 1 ),
DATE ( SELECTEDVALUE ( 'Date'[Year] ) - 1, 12, 1 ) )
VAR _PREV_MONTH_12month = CALCULATE (SUM ( 'Sales'[Actual] ), DATESINPERIOD ( 'Date'[Date], _Currentdateprevmonthstart, - 12, MONTH ))
RETURN
_PREV_MONTH_12month

 

 3. MOM% : The DAX is as same as you suggested. 

 

Thanks again. 

 

Best Regards,

Jack

 

Jack_Fan2309_1-1679028524779.png

 

 

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.