
循环依赖报错
背景:
新建列对ITEM做标签,通过DAX进行不同的条件判断得到不同的标签
第一个标签L1 写完没问题
L1 = IF(
[FCST v1] > [FCST v2] && [FCST v2] > [FCST v3] ,"↑",
IF(
[FCST v1] < [FCST v2] && [FCST v2] < [FCST v3] ,
"↓",
"Others"
))
第二个标签L2就报错循环依赖 (谁懂啊 明明没有用到L1
L2=
IF(
[FCST v1] > [FCST avg] && [FCST v2] > [FCST avg] && [FCST v3] > [FCST avg],
">AVG",
IF( [FCST v1] < [FCST avg] && [FCST v2] < [FCST avg] && [FCST v3] < [FCST avg],
"<AVG",
"Others"
然后给我搜到
当行上下文遇到CALCULATE发生行上下文转换时,DAX引擎会将行上下文中的行数据转换成筛选器,因此DAX引擎需要计算行数据的每一列都有什么值,于是会引用每一列。
用ALL作为条件 CALCULATE,清除掉L1列上的筛选器
L2 正确 =
CALCULATE(
IF(
[FCST v1] > [FCST avg] && [FCST v2] > [FCST avg] && [FCST v3] > [FCST avg],
">AVG",
IF( [FCST v1] < [FCST avg] && [FCST v2] < [FCST avg] && [FCST v3] < [FCST avg],
"<AVG",
"Others" -- 如果两个条件都不满足,返回空值
)
),ALL('营销:vs avg'[L1]))