我有 2 个表,它们有基于 2 个日期的 2 个关系: “daily_valus”表每个日期都有多个产品,这些产品(日期)连接到 2 个日期(最终调整日期和首次调整日期)的周表。 “首秀调整日期”是事件日期。
我在周表的新列 (ctRow) 中有以下公式:
= calculate( COUNTROWS(daily_valus); USERELATIONSHIP(daily_valus[Détail.Date];weeklies[date fin adjusted]))
该公式有效并且正在获取正确的行数。
不过,我还有一个补充。列,我只是引用 ctRow 列:
= weeklies[ctRow]
然后我得到了下面的错误。
有人知道为什么吗?
最佳答案
从所有列中删除依赖关系应该足够了,但对于使用 ALLEXCEPT 的关系中使用的日期
=
CALCULATE(
COUNTROWS( daily_valus );
USERELATIONSHIP ( daily_valus[Détail.Date]; weeklies[date fin adjusted] );
ALLEXCEPT( weeklies; weeklies[date fin adjusted] )
)
编辑:
发生循环依赖是因为当我们使用 CALCULATE 时,会发生上下文转换,以将当前行上下文转换为我们正在评估计算列的当前行。
这意味着在当前行的每一列(包括复制 ctRow(我将其称为 ctRow2)的第二个计算列)上设置过滤器上下文。但是ctRows2依赖于ctRow,因此我们得到了循环依赖。
为了解决循环依赖,我们必须从上下文转换的结果中删除依赖,但保留对关系正常工作所需的列的过滤器,在我们的例子中,这意味着使用 ALLEXCEPT(weeklies; weeklies [鳍调整日期])。
关于DAX : Using USERELATIONSHIP and getting a circular dependency detected error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65551422/