[英]Power BI DAX circular dependency was detected between two calculated columns
I have a calculated column that works as intended for current year calculations called RTP
.我有一个计算列,可以按预期用于当年的计算,称为RTP
。 For reference here is the code:这里的参考代码是:
RTP =
VAR ActualPM = AND(AND(
'Opex Summary'[Date] >= CALCULATE(STARTOFMONTH('Opex Summary'[Date]),FILTER(ALL(Dates), Dates[Month Offset] = 1)),
'Opex Summary'[Date] <= CALCULATE(ENDOFMONTH('Opex Summary'[Date]),FILTER(ALL(Dates), Dates[Month Offset] = 1))
),'Opex Summary'[Flag] <> "Budget")
VAR ActualPM_Name = FORMAT(CALCULATE(MIN(Dates[Mth]),FILTER(ALL(Dates),Dates[Month Offset] = 1)) ,"mm/yyyy")
VAR ActualPM1 = AND(AND(
'Opex Summary'[Date] >= CALCULATE(STARTOFMONTH('Opex Summary'[Date]),FILTER(ALL(Dates), Dates[Month Offset] = 2)),
'Opex Summary'[Date] <= CALCULATE(ENDOFMONTH('Opex Summary'[Date]),FILTER(ALL(Dates), Dates[Month Offset] = 2))
),'Opex Summary'[Flag] <> "Budget")
VAR ActualPM1_Name = FORMAT(CALCULATE(MIN(Dates[Mth]),FILTER(ALL(Dates),Dates[Month Offset] = 2)) ,"mm/yyyy")
VAR ActualPM2 = AND(AND(
'Opex Summary'[Date] >= CALCULATE(STARTOFMONTH('Opex Summary'[Date]),FILTER(ALL(Dates), Dates[Month Offset] = 3)),
'Opex Summary'[Date] <= CALCULATE(ENDOFMONTH('Opex Summary'[Date]),FILTER(ALL(Dates), Dates[Month Offset] = 3))
),'Opex Summary'[Flag] <> "Budget")
VAR ActualPM2_Name = FORMAT(CALCULATE(MIN(Dates[Mth]),FILTER(ALL(Dates),Dates[Month Offset] = 3)) ,"mm/yyyy")
VAR BudgetPM = AND(AND(
'Opex Summary'[Date] >= CALCULATE(STARTOFMONTH('Opex Summary'[Date]),FILTER(ALL(Dates), Dates[Month Offset] = 1)),
'Opex Summary'[Date] <= CALCULATE(ENDOFMONTH('Opex Summary'[Date]),FILTER(ALL(Dates), Dates[Month Offset] = 1))
),'Opex Summary'[Flag] = "Budget")
VAR BudgetPM_Name = FORMAT(CALCULATE(MIN(Dates[Mth]),FILTER(ALL(Dates),Dates[Month Offset] = 1)) ,"mm/yyyy")
VAR ActualPM_PY = AND(AND(
'Opex Summary'[Date] >= CALCULATE(STARTOFMONTH('Opex Summary'[Date]),FILTER(ALL(Dates), Dates[Month Offset] = 13)),
'Opex Summary'[Date] <= CALCULATE(ENDOFMONTH('Opex Summary'[Date]),FILTER(ALL(Dates), Dates[Month Offset] = 13))
),'Opex Summary'[Flag] <> "Budget")
VAR ActualPM__PYName = FORMAT(CALCULATE(MIN(Dates[Mth]),FILTER(ALL(Dates),Dates[Month Offset] = 13)) ,"mm/yyyy")
RETURN
SWITCH(TRUE(),
ActualPM, "CY Act (" & ActualPM_Name & ")",
ActualPM1, "CY Act (" & ActualPM1_Name & ")",
ActualPM2, "CY Act (" & ActualPM2_Name & ")",
BudgetPM, "CY Bud (" & BudgetPM_Name & ")",
ActualPM_PY, "PY Act (" & ActualPM__PYName & ")",
"EXCLUDE"
)
I am attempting to create a similar year to date calculated column called RTP YTD
.我正在尝试创建一个名为RTP YTD
的类似年初至今的计算列。 This is providing me the following error:这为我提供了以下错误:
A circular dependency was detected: Opex[RTP YTD], Opex[RTP], Opex[RTP YTD]检测到循环依赖:Opex[RTP YTD]、Opex[RTP]、Opex[RTP YTD]
The code that creates the error is below:创建错误的代码如下:
RTP YTD =
VAR ActualYTD1 = AND(AND(
'Opex Summary'[Date] >= CALCULATE(STARTOFMONTH('Opex Summary'[Date]),FILTER(ALL(Dates), Dates[Month Offset] = 13)),
'Opex Summary'[Date] <= CALCULATE(ENDOFMONTH('Opex Summary'[Date]),FILTER(ALL(Dates), Dates[Month Offset] = 1))
),'Opex Summary'[Flag] <> "Budget")
VAR ActualYTD_Name1 = FORMAT(CALCULATE(MIN(Dates[Date]),FILTER(ALL(Dates),Dates[Month Offset] = 1)) ,"mm/yyyy")
RETURN
SWITCH(TRUE(),
ActualYTD1, "YTD Act (" & ActualYTD_Name1 & ")",
"EXCLUDE"
)
I think you need ALLEXCEPT() in your calculated columns.我认为您的计算列中需要 ALLEXCEPT() 。 I'd write the code but it is difficult without sample data so you can have a read here:我会编写代码,但没有示例数据很难,因此您可以在此处阅读:
https://www.sqlbi.com/articles/avoiding-circular-dependency-errors-in-dax/ https://www.sqlbi.com/articles/avoiding-circular-dependency-errors-in-dax/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.