Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
4 years ago
Solved

Help with circular reference calculation

Hello,

 

 I need to perform a difficult calculation on my model and I can not seem to find the answer to this.

 

The context is:

 

Every month I have a total cost, but I have a limit on how much I can pay, if the cost exceeds this limit I have to carry the difference to next month.

 

The problem is that this calculation is giving me the circular reference problem.

 

Illustration of the problem:

 

The problem is that the current red row references the previous orange row, which references the previous red row, I have no idea of how to solve this issue on power bi.

 

Can anyone help me?

 

  • Anonymous's avatar
    Anonymous
    4 years ago

    Hi Anonymous 

     

    What are your original columns? I got Month, Cost, Limit only, then 3 Calculated columns

    Difference = 
    VAR CurMonth = 'Table'[Month]
    VAR T1=FILTER('Table','Table'[Month]<=CurMonth)
    RETURN
    SUMX(T1,[Cost]-[Limit])
    
    Previous Month = 
    MAXX(FILTER('Table','Table'[Month]=EDATE( EARLIER('Table'[Month]),-1)),[Difference])
    
    Total = [Cost]+[Previous Month]

     

3 Replies

  • Anonymous's avatar
    Anonymous
    Not applicable

    Hi Anonymous 

     

    What are your original columns? I got Month, Cost, Limit only, then 3 Calculated columns

    Difference = 
    VAR CurMonth = 'Table'[Month]
    VAR T1=FILTER('Table','Table'[Month]<=CurMonth)
    RETURN
    SUMX(T1,[Cost]-[Limit])
    
    Previous Month = 
    MAXX(FILTER('Table','Table'[Month]=EDATE( EARLIER('Table'[Month]),-1)),[Difference])
    
    Total = [Cost]+[Previous Month]

     

    • Anonymous's avatar
      Anonymous
      Not applicable

      Works perfectly! I just included an if statement on the difference to yield '0' if negative, this way we won't accumulate negative values at the difference.

       

       

      If you have the time, could you explain to me why this works ??

       

      I was trying using Calculate(sum(difference, Filter (previous month)) and it was not working, giving the circular error

      • Anonymous's avatar
        Anonymous
        Not applicable

        Hi Anonymous 

         

        I don't have enough context to understand how you calculated all the values, are they all DAX Calculated columns or measures? Have you checked if there is certain value like referencing each other?