Forum Discussion

clarkey1988's avatar
clarkey1988
Icon for Helper II rankHelper II
4 years ago
Solved

Calculate Percentage Change from previous Year

Hi,

 

I wonder if anyone can help me. I have the below measure which is calculating the percentage change of "Suppliers" from current month from the previous month.

 

So in 2021 January had 154 suppliers and February had 147 suppliers so the percentage change in suppliers is -5%.

 

However, instead, I need this to calculate the percentage change from the current month and year from the previous month and year.

 

So February 2021 had 147 suppliers and February 2020 had 151 suppliers. The percentage change would be -3%

 

I keep getting a column value error.

 

Please could someone help? Thanks!

 

 

 

 

  • Hi clarkey1988 ,

     

    First create a calendar table,then create a relationship between the 2 tables.

    Create a measure as below:

    Measure =
    VAR _previous =
        CALCULATE ( SUM ( 'Table'[Supplier] ), DATEADD ( 'Table'[date], -1, MONTH ) )
    VAR _current =
        CALCULATE (
            SUM ( 'Table'[Supplier] ),
            FILTER ( 'Table', 'Table'[date] = MAX ( 'Table'[date] ) )
        )
    RETURN
        IF (
            ISINSCOPE ( 'Table'[Month] ),
            SUM ( 'Table'[Supplier] ),
            FORMAT ( DIVIDE ( _current - _previous, _previous ), "percent" )
        )
    

    And you will see:

    For the related .pbix file,pls see attached.

     

    Best Regards,
    Kelly

    Did I answer your question? Mark my reply as a solution!

2 Replies

  • Your formula looks a little complex.  Have you considered using SAMEPERIODLASTYEAR ()  or one of the Quick Measures?

     

    I also don't see the column error you mention.

  • v-kelly-msft's avatar
    v-kelly-msft
    Icon for Community Support rankCommunity Support

    Hi clarkey1988 ,

     

    First create a calendar table,then create a relationship between the 2 tables.

    Create a measure as below:

    Measure =
    VAR _previous =
        CALCULATE ( SUM ( 'Table'[Supplier] ), DATEADD ( 'Table'[date], -1, MONTH ) )
    VAR _current =
        CALCULATE (
            SUM ( 'Table'[Supplier] ),
            FILTER ( 'Table', 'Table'[date] = MAX ( 'Table'[date] ) )
        )
    RETURN
        IF (
            ISINSCOPE ( 'Table'[Month] ),
            SUM ( 'Table'[Supplier] ),
            FORMAT ( DIVIDE ( _current - _previous, _previous ), "percent" )
        )
    

    And you will see:

    For the related .pbix file,pls see attached.

     

    Best Regards,
    Kelly

    Did I answer your question? Mark my reply as a solution!