首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >影响措施的非活动关系

影响措施的非活动关系
EN

Stack Overflow用户
提问于 2019-04-20 07:34:20
回答 2查看 360关注 0票数 1

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

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

以下是一些截图:

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

关系后的(日期- Table2T2Date):

我需要理解为什么会出现这种差异,以及这种关系是如何导致的,因为度量使用的是不同的关系。

作为参考,我附上pbix报告。

biX7m-4el4

如能提供任何帮助,将不胜感激:)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 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,您的总体度量可以更简单地写为:

代码语言:javascript
复制
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版本相匹配。

票数 3
EN

Stack Overflow用户

发布于 2019-04-22 08:49:06

在任何关系上将交叉过滤器方向设置为都有一定的风险--实际上,您将运行时查询设计的控制权移交给Power机器人。然后,他们会冒出一个意想不到的“创造性”查询设计的风险。

在最近阿尔贝托·法拉利的一次演讲中,我们对这种情况有了一些了解:

https://www.sqlbi.com/tv/understanding-relationships-in-power-bi/

我相信你会同意这是相当可怕的。

查看您的信息,我希望您可以通过将交叉过滤器方向更改为Single来避免这些陷阱,因为从MonthYearDate之间的关系。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55771337

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档