Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
4 years ago
Solved

Unexpected Infinity

Hi,

 

I have a dataset similar to the below.

 

DateJob IDNorm HoursTotal Hours
01/01/202111020
01/01/202121020

 

I am trying to calculate 'Contract Factor'. I have created the below DAX.

 

Contract Factor =SUM('Detailed Data Set'[Total Hours]) / SUM('Detailed Data Set'[Norm Hours])

 

When this measure is entered into a table visual I get the below response.

 

DateJob IDNorm HoursTotal HoursContract Factor
01/01/2021110202
01/01/202121020infinity 

Infity is not expected.

 

I have tried creating a card visual, entering the Contract Factor measure and filtered on job '2'. The card displays the expected result '2' (total hours [20] /  norm hours [10]). 

 

I have also tried creating the Contract Factor calculation as a calculated column. When put into a table visual this displays infinity for all Contract Factors.

 

Does anyone know why I am getting unexpected 'infinity' results?

 

  • Anonymous's avatar
    Anonymous
    4 years ago

    Hi Anonymous , 

    Use divide to avoid divide by 0. The reason why infinity is shown is that there are some values that are 0. 0 divided by a number is infinity. You can use the divide function to avoid infinity because the function can get 0 when it encounters a value of 0. Or you can make a conditional judgment, for example a/b, if a is 0 then get 0, otherwise a/b.

     

    I cannot reproduce your issue. 

    Please try to create a measure.

     

    IFERROR(
       SUM('Detailed Data Set'[Total Hours]) / SUM('Detailed Data Set'[Norm Hours]),
        BLANK()
        )

     

     

    If I have misunderstood your meaning, please provide some sample data and desired output.

     

    I have alse found a similar post, please refer to it to see if it helps you.

    Infinity error 

    • If infinity error then use divide

    Best Regards

    Community Support Team _ Polly

     

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

     

     

9 Replies

  • Anonymous's avatar
    Anonymous
    Not applicable

    Hi Anonymous , 

    Use divide to avoid divide by 0. The reason why infinity is shown is that there are some values that are 0. 0 divided by a number is infinity. You can use the divide function to avoid infinity because the function can get 0 when it encounters a value of 0. Or you can make a conditional judgment, for example a/b, if a is 0 then get 0, otherwise a/b.

     

    I cannot reproduce your issue. 

    Please try to create a measure.

     

    IFERROR(
       SUM('Detailed Data Set'[Total Hours]) / SUM('Detailed Data Set'[Norm Hours]),
        BLANK()
        )

     

     

    If I have misunderstood your meaning, please provide some sample data and desired output.

     

    I have alse found a similar post, please refer to it to see if it helps you.

    Infinity error 

    • If infinity error then use divide

    Best Regards

    Community Support Team _ Polly

     

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

     

     

  • Samarth_18's avatar
    Samarth_18
    Community Champion

    HI Anonymous ,

     

    Please try this:-

    Contract Factor =divide(SUM('Detailed Data Set'[Total Hours]),SUM('Detailed Data Set'[Norm Hours]),0)

     

    Thanks,

    Samarth

    • Anonymous's avatar
      Anonymous
      Not applicable

      Thanks for your quick response.

       

      This has replaced all previous 'infinity' figures with '0' where they should still be returning a value higher than '0'.

       

      Using the bar graph visual I have placed column 'Job ID' on the X axis of a graph visual and 'Contract Factor' DAX on the Y axis.

       

      This returns a result with all Job ID's displaying their expected Contract Factor. Contract Factors that are displaying as 'Infinity' or '0' in a table visual now show as the expected value in a bar graph. 

       

      I don't understand why the table visual is showing different results for the same data.

      • Samarth_18's avatar
        Samarth_18
        Community Champion

        Anonymous Try this:-

        Contract Factor =divide(SUM('Detailed Data Set'[Total Hours]),SUM('Detailed Data Set'[Norm Hours]))