Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
5 years ago
Solved

Getting variations by chaging data structure

Hi everyone, 

 

I have the following dataset:

I would like to have a table like this one :

For variation between 2018 and 2019 and also variation between Forecast and Sales in each year.

 

I supose I have to do some transformations in dataset, but not getting there!

Can anyone help

 

7 Replies

  • vanessafvg's avatar
    vanessafvg
    Community Champion
    which part are you struggling with exactly the 2018 / 2019 column or just the variation. Please provide data in text format.
    • Anonymous's avatar
      Anonymous
      Not applicable

      Hi vanessafvg ,

       

      Actually with the 2018 / 2019 columns.

       

      DateProduct NameDaily SalesDaily ForecastDaily Sales Corrected
      01/01/2018Product A100.99193.000100990,8
      02/01/2018Product A113.184112.000113184
      03/01/2018Product A118.390121.000118389,6
      04/01/2018Product A152.053153.000152053,2
      05/01/2018Product A164.354156.000164354,4
      06/01/2018Product A113.929115.000113929,2
      07/01/2018Product A39.13937.00039139,2
  • Anonymous , Better to have measures likes these using date table and time intelligence

     

    TD Sales = CALCULATE(SUM(Sales[Sales Amount]),DATESYTD('Date'[Date],"12/31"))
    Last YTD Sales = CALCULATE(SUM(Sales[Sales Amount]),DATESYTD(dateadd('Date'[Date],-1,Year),"12/31"))
    This year Sales = CALCULATE(SUM(Sales[Sales Amount]),DATESYTD(ENDOFYEAR('Date'[Date]),"12/31"))
    Last year Sales = CALCULATE(SUM(Sales[Sales Amount]),DATESYTD(ENDOFYEAR(dateadd('Date'[Date],-1,Year)),"12/31"))
    Last to last YTD Sales = CALCULATE(SUM(Sales[Sales Amount]),DATESYTD(dateadd('Date'[Date],-2,Year),"12/31"))
    Year behind Sales = CALCULATE(SUM(Sales[Sales Amount]),dateadd('Date'[Date],-1,Year))
    //Only year vs Year, not a level below

     


    This Year = CALCULATE(sum('order'[Qty]),filter(ALL('Date'),'Date'[Year]=max('Date'[Year])))
    Last Year = CALCULATE(sum('order'[Qty]),filter(ALL('Date'),'Date'[Year]=max('Date'[Year])-1))
    rolling = CALCULATE(sum('order'[Qty]),filter(ALL('Date'),'Date'[Year]>=max('Date'[Year])-2 && 'Date'[Year]<=max('Date'[Year])) )

    diff = [This Year]-[Last Year ]
    diff % = divide([This Year]-[Last Year ],[Last Year ])

     

    To get the best of the time intelligence function. Make sure you have a date calendar and it has been marked as the date in model view. Also, join it with the date column of your fact/s. Refer :radacad sqlbi My Video Series Appreciate your Kudos.

     

    Please provide your feedback comments and advice for new videos
    Tutorial Series Dax Vs SQL Direct Query PBI Tips
    Appreciate your Kudos.

    • Anonymous's avatar
      Anonymous
      Not applicable

      So with my columns that would be :

      This Year = CALCULATE(sum('Dataset'[Daily Sales corrected]),filter(ALL('Dataset'[Date]),'Dataset'[Date][Year]=max('Dataset'[Date][Year])))
       
      ?
       
      Where is my error? 
       
      Could you please provide the example with the names of my columns? Thank you