Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
3 years ago
Solved

Percentage Difference Between Years

Hi Experts

 

What is the best way to calculate the Percentage Difference between the Years as shown in the same Data. I would like to plot the % diff in a line chart by Month

Sample Data

Month2019202020212022
Jan10102519
Feb25132425
Mar10252212
Apr13241314
May20162424
Jun19151220
Jul16232321
Aug16131817
Sept11232019
Oct18152410
Nov17211023
Dec19181119
  • Anonymous's avatar
    Anonymous
    3 years ago

    Hi  Anonymous ,

     

    Here are the steps you can follow:

    1. Select [2019] – [2022] – Transform – Unpivot Columns.

    2. Change the [Attribyte] format to Whole number..

    3. Create calculated column.

    Flag =
    var _max=MAXX(ALL('Table'),'Table'[Attribute])
    return
    IF(
        'Table'[Attribute]=_max,BLANK(),VALUE(RIGHT('Table'[Attribute],2)) +1 &"-"& VALUE(RIGHT('Table'[Attribute],2)))

    4. Create measure.

    Measure =
    var _current=
    SUMX(  FILTER(ALL('Table'),'Table'[Month]=MAX('Table'[Month])&&'Table'[Attribute]=MAX('Table'[Attribute])),[Value])
    var _next=
    SUMX(
    FILTER(ALL('Table'),'Table'[Month]=MAX('Table'[Month])&&'Table'[Attribute]=MAX('Table'[Attribute])+1),[Value])
    return
    DIVIDE(
        _current,_next)

    5. Result:

     

    Best Regards,

    Liu Yang

    If this post helps, then please consider Accept it as the solution to help the other members find it more quickly

5 Replies

  • Anonymous's avatar
    Anonymous
    Not applicable

    Hi  Anonymous ,

     

    Here are the steps you can follow:

    1. Select [2019] – [2022] – Transform – Unpivot Columns.

    2. Change the [Attribyte] format to Whole number..

    3. Create calculated column.

    Flag =
    var _max=MAXX(ALL('Table'),'Table'[Attribute])
    return
    IF(
        'Table'[Attribute]=_max,BLANK(),VALUE(RIGHT('Table'[Attribute],2)) +1 &"-"& VALUE(RIGHT('Table'[Attribute],2)))

    4. Create measure.

    Measure =
    var _current=
    SUMX(  FILTER(ALL('Table'),'Table'[Month]=MAX('Table'[Month])&&'Table'[Attribute]=MAX('Table'[Attribute])),[Value])
    var _next=
    SUMX(
    FILTER(ALL('Table'),'Table'[Month]=MAX('Table'[Month])&&'Table'[Attribute]=MAX('Table'[Attribute])+1),[Value])
    return
    DIVIDE(
        _current,_next)

    5. Result:

     

    Best Regards,

    Liu Yang

    If this post helps, then please consider Accept it as the solution to help the other members find it more quickly

    • Anonymous's avatar
      Anonymous
      Not applicable

      Liu Yang - Thank u

  • HI Anonymous 
    I'm not sure I understood correctly.
    Do you mean to select two years every time and display a change by month between a minimum year and a maximum year when you talk about a change in percentages?
    An example of the desired result would be helpful.

    • Anonymous's avatar
      Anonymous
      Not applicable

      Hi Rita the difference between 22-21 and 21-20 and 20-19 and plot those as percentage diff in a line chart

  • To plot the date by monyh you can groupby the date with date(month) & date(year)

    For date diff for year 

    % datediff(2022-2019,2019)

    If it is helpful please accept the answer.