Forum Discussion

SummaL's avatar
SummaL
New Member
4 years ago
Solved

How to fixe: A circular dependency was detected

I have a Calendar table like below. Only the last two columns are calculated columns.

Column "IsCurrentMonth " is working fine, DAX as below. 

 

IsCurrentMonth =
var currentromonth = 'Calendar'[MonthNo]
var isthismonth = CALCULATE(MIN('Calendar'[MonthNo]),'Calendar'[DATE]=TODAY())
return
if (isthismonth=currentromonth, "Yes", "No")
 
However, Column "IsCurrentWeek" keeps telling me "A circular dependency was detected". Dax as below. I don't think these two columns are related. Is there any "circular dependency"?
Wondering anybody here can help me out on this? Appreciated.
 
IsCurrentWeek =
var currentrowweek = 'Calendar'[Fiscal_Week]
var iscurrentweek = CALCULATE(MIN('Calendar'[Fiscal_Week]),'Calendar'[DATE]=TODAY())
return
if (iscurrentweek=currentrowweek, "Yes", "No")

 

 

 

  • Hi, SummaL 

    I can reproduce the same error.

    I don't know what exactly causes this error, but after encapsulating the condition with ‘filter’, the code can run normally.

    IsCurrentWeek =
    VAR currentrowweek = 'Calendar'[Fiscal_Week]
    VAR iscurrentweek =
        CALCULATE (
            MIN ( 'Calendar'[Fiscal_Week] ),
            FILTER ( 'Calendar', 'Calendar'[DATE] = TODAY () )
        )
    RETURN
        IF ( iscurrentweek = currentrowweek, "Yes", "No" )
    


     

    Best Regards,
    Community Support Team _ Eason

3 Replies

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

    Hi, SummaL 

    I can reproduce the same error.

    I don't know what exactly causes this error, but after encapsulating the condition with ‘filter’, the code can run normally.

    IsCurrentWeek =
    VAR currentrowweek = 'Calendar'[Fiscal_Week]
    VAR iscurrentweek =
        CALCULATE (
            MIN ( 'Calendar'[Fiscal_Week] ),
            FILTER ( 'Calendar', 'Calendar'[DATE] = TODAY () )
        )
    RETURN
        IF ( iscurrentweek = currentrowweek, "Yes", "No" )
    


     

    Best Regards,
    Community Support Team _ Eason

  • SummaL , same name seems like an issue, try like

     

    IsCurrentWeek =
    var _currentrowweek = 'Calendar'[Fiscal_Week]
    var _iscurrentweek = CALCULATE(MIN('Calendar'[Fiscal_Week]),'Calendar'[DATE]=TODAY())
    return
    if (_iscurrentweek=_currentrowweek, "Yes", "No")

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

      If renaming the variables doesn't sort it have a read of 

      https://www.sqlbi.com/articles/avoiding-circular-dependency-errors-in-dax/

       

      In summary when you use CALCULATE in the second calculated column it causes a context transition and moves all columns from the current row into the filter context. That includes the other calculated columns so they end up being circular.

       

      You need to add ALLEXCEPT into the calculate to reference just the column(s) you need to use.