Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
4 years ago
Solved

Percentage Change showing incorrectly

I am having a problem showing the percentage change for when both values are 0. For example, if my figure for 2020 was 0, and my figure for 2021 was 0. I would want my % change visual to show 0% - as there has been no change. However it is showing -100%. This only affects figures where they are both 0, it works perfectly if both figures are 1 and it would show 0% change.

Below is my measure i'm using - could anyone advise as to why this could be happening?

% Vic Change =
DIVIDE(
CALCULATE(
DISTINCTCOUNT('Fact Incident'[Victim ID]),
FILTER('Date','Date'[Fiscal Year]=MAX('Date'[Fiscal Year])
)
),
CALCULATE(
DISTINCTCOUNT('Fact Incident'[Victim ID]),
FILTER('date','Date'[Fiscal Year]=MIN('Date'[Fiscal Year])))
,0)
- 1
As you can see in the screenshot below, i have two figures of 0 and the % change is showing as -100%:

 

  • vivran22's avatar
    vivran22
    4 years ago

    Anonymous 

     

    Mathematically, the correct formula for calculating difference from previous year is:

     

    (Cur Year - Prev Year)/Prev Year

     

    Based on that, you should modify your formula:

     

    % Vic Change =
    VAR _Num = 

        CALCULATE (
            DISTINCTCOUNT ( 'Fact Incident'[Victim ID] ),
            FILTER ( 'Date''Date'[Fiscal Year] = MAX ( 'Date'[Fiscal Year] ) )
        )
    VAR _Den = 
        CALCULATE (
            DISTINCTCOUNT ( 'Fact Incident'[Victim ID] ),
            FILTER ( 'date''Date'[Fiscal Year] = MIN ( 'Date'[Fiscal Year] ) )
        )
        
    VAR _PercentChange = IFERROR((_Num-_Den)/_Den ,0)
    RETURN
    _PercerntChange

     

    Note: You may want to assign appropriate variable names.

     

    Cheers!
    Vivek

    If it helps, please mark it as a solution
    Kudos would be a cherry on the top 🙂 (Hit the thumbs up button!)
    If it doesn't, then please share a sample data along with the expected results (preferably an excel file and not an image)


    https://www.vivran.in/

    Connect on LinkedIn

7 Replies

  • Anonymous's avatar
    Anonymous
    Not applicable

    Anonymous You can add third parameter (write there 1) in DIVIDE function (what function returns when there is dividing by zero).

    • Anonymous's avatar
      Anonymous
      Not applicable

      Hi Anonymous , how would this look inside my current measure please? Thanks

      • Anonymous's avatar
        Anonymous
        Not applicable
        % Vic Change =
        DIVIDE(
          CALCULATE(
            DISTINCTCOUNT('Fact Incident'[Victim ID]),
            FILTER('Date','Date'[Fiscal Year]=MAX('Date'[Fiscal Year])
            )
          ),
          CALCULATE(
            DISTINCTCOUNT('Fact Incident'[Victim ID]),
            FILTER('date','Date'[Fiscal Year]=MIN('Date'[Fiscal Year])
            )
          )
        ,1)
        - 1
  • vivran22's avatar
    vivran22
    Icon for Community Champion rankCommunity Champion

    Hello Anonymous 

     

    I believe you need to modify the formula:

    % Vic Change =
    VAR _Num = 

        CALCULATE (
            DISTINCTCOUNT ( 'Fact Incident'[Victim ID] ),
            FILTER ( 'Date', 'Date'[Fiscal Year] = MAX ( 'Date'[Fiscal Year] ) )
        )
    VAR _Den = 
        CALCULATE (
            DISTINCTCOUNT ( 'Fact Incident'[Victim ID] ),
            FILTER ( 'date', 'Date'[Fiscal Year] = MIN ( 'Date'[Fiscal Year] ) )
        )
        
    VAR _PercentChange = IFERROR(_Num/_Den - 1,0)
    RETURN
    _PercerntChange

     

    Cheers!
    Vivek

    If it helps, please mark it as a solution
    Kudos would be a cherry on the top 🙂 (Hit the thumbs up button!)
    If it doesn't, then please share a sample data along with the expected results (preferably an excel file and not an image)


    https://www.vivran.in/

    Connect on LinkedIn

    • Anonymous's avatar
      Anonymous
      Not applicable

      Hi vivran22 thanks for this. Unfortunately the end result is the same  = -100%.

      • vivran22's avatar
        vivran22
        Icon for Community Champion rankCommunity Champion

        Anonymous 

         

        Mathematically, the correct formula for calculating difference from previous year is:

         

        (Cur Year - Prev Year)/Prev Year

         

        Based on that, you should modify your formula:

         

        % Vic Change =
        VAR _Num = 

            CALCULATE (
                DISTINCTCOUNT ( 'Fact Incident'[Victim ID] ),
                FILTER ( 'Date''Date'[Fiscal Year] = MAX ( 'Date'[Fiscal Year] ) )
            )
        VAR _Den = 
            CALCULATE (
                DISTINCTCOUNT ( 'Fact Incident'[Victim ID] ),
                FILTER ( 'date''Date'[Fiscal Year] = MIN ( 'Date'[Fiscal Year] ) )
            )
            
        VAR _PercentChange = IFERROR((_Num-_Den)/_Den ,0)
        RETURN
        _PercerntChange

         

        Note: You may want to assign appropriate variable names.

         

        Cheers!
        Vivek

        If it helps, please mark it as a solution
        Kudos would be a cherry on the top 🙂 (Hit the thumbs up button!)
        If it doesn't, then please share a sample data along with the expected results (preferably an excel file and not an image)


        https://www.vivran.in/

        Connect on LinkedIn