Forum Discussion

krishnaoptif's avatar
krishnaoptif
New Member
9 years ago
Solved

Get Last Year Month using DateAdd DAX from Calculated New Column

Hi Experts,

 

Firstly i have created one new calculated DAX column to know last date from the table

Site_LastMonthDate = Max(DB[MonthName])

 

 

Now going to take Same month using below calculated column  (DAX) for previous year based on Site_LastMonthDate (which is already calculated field to get last month inthe table)

 

Site_LasYearLastMonthName = DATEADD(DB[Site_LastMonthDate].[Date],-12,MONTH)

 

This above function is not working for the last 12 months name but if i run this for the same year like previous month like Site_LasYearLastMonthName = DATEADD(DB[Site_LastMonthDate].[Date],-1,MONTH) then this works.

 

It is very surprising. Can someone help me in this on urgent basis if possible.

 

  • MattAllington's avatar
    MattAllington
    9 years ago

    krishnaoptif wrote:

    ...now i need to create the matrix where SiteName willl be in rows, and need to add few % change Columns like (% change for sum of CountValue from Current Month[Oct-2016] Vs Previous Month[Sep-2016], Current Month[Oct-2016] Vs Last Year the Same Month[Oct-2015], Current Month - previous two months [Aug-2016] Vs Last Year Same Same Month [Aug-2015]

     

     


    The way you are thinking about this problem is appopriate for Excel, but it is the wrong approach for Power Pivot.  This is what you need to do.

     

    1.  Create a calendar table.  This table should contain a month column (which you actually have as a data column using the first day of the month - this is fine) and an ID column.  Read my article I posted above.  Let's assume your calendar table is called calendar and the columns are called Month, ID.

    2.  Connect your data table to your calendar table on the month column

    3.  The measures you need to do what you want will be as follows  (Just follow the pattern for other measures)

     

    Chg vs Prior Month = calculate(sum(db[countvalue]),filter(all(calendar),calendar[ID] = max(calendar[ID])-1))

    Chg vs Same Month PY= calculate(sum(db[countvalue]),filter(all(calendar),calendar[ID] = max(calendar[ID])-12))

    Rolling 3 Months this year = calculate(sum(db[countvalue]),filter(all(calendar),calendar[ID] >= max(calendar[ID])-2 && calendar[ID] <=max(calendar[ID]))

    Rolling 3 Months last year = calculate(sum(db[countvalue]),filter(all(calendar),calendar[ID] >= max(calendar[ID])-14 && calendar[ID] <=max(calendar[ID])-12)

     

9 Replies

    • krishnaoptif's avatar
      krishnaoptif
      New Member
      Thanks for reply but firstly I need to get the max date from the existing date field then I need to get last year same month from the max date. May u please help me in this ?
      • MattAllington's avatar
        MattAllington
        Community Champion

        You have a view of what you need to do, but I'm not clear if your approach is correct or not. Can you describe the output you want.  Just use Excel to show what your looking for and post an image