我在pbix报告中有以下表格和关系:

由于一些明显的原因,我需要在Datesdate和Table2T2Date之间建立一种关系(非活动)。然而,这样做会导致数据波动,以测量Table1中的“总量”。
以下是一些截图:

关系之前的(日期- Table2T2Date):

关系后的(日期- Table2T2Date):

我需要理解为什么会出现这种差异,以及这种关系是如何导致的,因为度量使用的是不同的关系。
作为参考,我附上pbix报告。
如能提供任何帮助,将不胜感激:)
发布于 2019-04-22 18:43:25
@MikeHoney提供的链接具有关于关系的微妙性的非常有用的信息,并且确实与此问题有关(请注意它!),但这个问题最终与双向过滤无关。事实上,我可以用这种简化的关系结构来再现它:

这里要注意的关键是,当您将Table2附加到Dates时,由于Table2包含与任何Date[date]不匹配的T2Date值,这会在Dates中创建一个额外的行,其中包含一个空白日期,当该关系存在(活动或非活动)时,您可以在6. Year上的筛选器中注意到这一点。筛选出6. Year筛选器中的空白将有效,但在您的度量中,您可以使用ALL(Dates)删除在该表上完成的所有筛选。
解决这一差异的方法有多种,最简单的方法是用ALL替换ALLNOBLANKROW。如果您使用ALLSELECTED,那么它也可以与6. Year上的报表级筛选器中的空白过滤一起工作。
清理一些与此上下文无关的项目,并将ALL更改为ALLNOBLANKROW,您的总体度量可以更简单地写为:
ALLNOBLANKROW =
VAR EndServiceDate =
MAX ( Dates[Date] )
RETURN
CALCULATE (
SUM ( Table1[Net Amount] ),
FILTER (
ALLNOBLANKROW ( Dates ),
Dates[Date] <= EndServiceDate
),
Table1[Flag2] = 1,
Table1[Flag] = TRUE ()
)结果没有6. Year滤波器,有两种方法,一种是使用ALL,另一种是使用ALLNOBLANKROW。

注意,ALL列中的每一行都被-7,872.01缩减了。这是与Net Amount表中的任何日期不匹配的所有Dates值的总和。如果您将关系从Dates[date]移除到Table2[T2Date],那么空行就不再存在,这两者都将与ALLNOBLANKROW版本相匹配。
发布于 2019-04-22 08:49:06
在任何关系上将交叉过滤器方向设置为和都有一定的风险--实际上,您将运行时查询设计的控制权移交给Power机器人。然后,他们会冒出一个意想不到的“创造性”查询设计的风险。
在最近阿尔贝托·法拉利的一次演讲中,我们对这种情况有了一些了解:
https://www.sqlbi.com/tv/understanding-relationships-in-power-bi/
我相信你会同意这是相当可怕的。
查看您的信息,我希望您可以通过将交叉过滤器方向更改为Single来避免这些陷阱,因为从MonthYear到Date之间的关系。
https://stackoverflow.com/questions/55771337
复制相似问题