Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
SummaL
New Member

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")

 

SummaL_1-1642574417685.png

 

 

1 ACCEPTED SOLUTION
v-easonf-msft
Community Support
Community Support

Hi, @SummaL 

I can reproduce the same error.

13.png

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" )


14.png

 

Best Regards,
Community Support Team _ Eason

View solution in original post

3 REPLIES 3
v-easonf-msft
Community Support
Community Support

Hi, @SummaL 

I can reproduce the same error.

13.png

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" )


14.png

 

Best Regards,
Community Support Team _ Eason

amitchandak
Super User
Super User

@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")

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.



Ben Dobbs

LinkedIn | Twitter | Blog

Did I answer your question? Mark my post as a solution! This will help others on the forum!
Appreciate your Kudos!!

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.