认识Power BI中的非活动关系

经常遇到星友们关于模型的问题:为什么明明已经建立了关系,但是没有筛选作用?仔细一看,原来建立的这个关系显示的是一条虚线。

这篇文章就来介绍一下,为什么有的关系线是虚线?虚线有什么作用,以及如何使用这个虚线关系。


在PowerBI中,两个表之间只能有一个活动关系,活动关系用一条实线显示,如果打算在这两个表之间继续建立更多关系,则会显示为虚线,即非活动关系,也称为虚线关系,虚线关系可以有多条,默认不能发生筛选作用。

以一个最常用的场景来理解,假设订单表中有订单日期以及发货日期,利用订单日期与日期表建立了关系,那么在分析时,都是以订单日期为基础分析的,每天产生了多少订单,订单收入是多少等。

但是如果还需要按照发货日期来分析,比如每天发出的订单金额是多少?就需要按照发货日期与日期表中的日期建立关系,在已有一条活动关系的情况下,再建立一条关系就会以虚线显示,

双击该虚线,进入编辑关系窗口,就可以看到左下角的“使此关系可用”的选项是没有勾选的,

如果你试图勾选它,系统就会提示你,已经有一条关系存在,不允许再建立活动关系。对于活动关系,你也可以去掉上图中的这个勾选,使之变为非活动关系。


继续回到上面的问题。

因为订单日期已经与日期表建立了活动关系,求每个订单日期的订单收入很简单,直接写个度量值就可以了:

收入 = SUM( '订单表'[销售额] )

但发货日期与日期表建立的是非活动关系,这个度量值是没法按照发货日期来计算的,那么建立这个关系有什么用呢,如何按发货日期,计算每天发货的订单收入是多少?

这时候就要用到这个非活动关系,利用DAX函数USERELATIONSHIP来临时激活这个虚线关系,按发货日期的收入度量值可以这样写:

收入 按发货日期 =
CALCULATE(
[收入],
  USERELATIONSHIP('日期表'[日期],'订单表'[发货日期]))

USERELATIONSHIP函数是专门用来激活非活动关系的,它的参数是构成关系的两列,这两列的顺序无所谓,不影响计算结果,并且USERELATIONSHIP激活关系的前提是,这两列已经在模型中建立了非活动关系,否则将会报错。

USERELATIONSHIP激活非活动关系后,会自动断开原有的活动关系,不过关系的激活以及原有关系的断开都是临时的,且只在该表达式内部生效,并不影响模型中的其他计算。

用矩阵显示这两个度量值的结果如下:

因为当天的订单,不一定当天都能发货,所以,在某个日期或者某个时间段内,按订单日期的收入与按发货日期的收入总会有个时间差。

更进一步的,如果想动态的切换按订单日期的收入、以及按发货日期的收入,则可以建立个辅助表(Power BI 辅助表制作方式汇总),

并利用这个辅助表中的类型生成切片器,然后写个度量值来判断切片器的选项,来返回相应的计算:

然后就可以动态切换了。

通过上面的介绍,是不是理解了非活动关系呢,它与USERELATIONSHIP函数总是同时出现,在不影响原有模型的情况下,灵活的实现另一种关系查询。在之前介绍的关联分析中,也用到了非活动关系,可以再看看这篇文章加深理解:

如何用Power BI分析产品关联度?

(0)

相关推荐

  • 什么是雪花维度?Power BI里如何降低模型复杂度?

    关系模型是Power BI的独特优势,但是,在日常数据分析中,过多的表间关系,会使得数据模型变得非常复杂而且难以分析. 因此,在合适的情况下,借鉴其他BI工具(如SAP BW等)的"并表&q ...

  • “吃了面包的顾客喝了多少咖啡?”——自从有了多对多关系,这种问题就简单多了……

    终于,Power BI支持多对多的表间关系了,在这之前,凡是涉及到多对多的表间关系,都是"高级"内容,让我等想用Power BI做数据分析却又怕脑洞不够的普通用户感到莫名恐惧--比 ...

  • 因为“有关系”,问题就简单了……

    小勤:大海,能在Power Pivot或Power BI将一个表里的数据匹配到另一个表里吗? 大海:两个表之间有关系吗? 小勤:当然有啊,比如这个1对多的,怎么把1端的"产品"表里 ...

  • 徒有其表(成语)

    徒有其表 成语共3个含义 成语 网络流行语 1939年美国电影 收起 中文名徒有其表 读    音tú yǒu qí biǎo 释    义空有其外表,不实在 出    处唐·郑处诲<明皇杂录& ...

  • Power BI中如何实现类似Excel中的逆序坐标图?

    小勤:大海,Power BI里面怎么实现逆序刻度图?比如我想分析学生多次考试成绩的名次变化趋势,由于名次数据越小越好,比如第1名要好过第2名,所以,数据小的应该显示在数据大的上方.在Excel里,可以 ...

  • 如何在Power BI中动态显示标题?

    默认情况下,PowerBI图表的标题是静态的,为了增强图表的可读性,通过设置动态标题,可快速展示关键信息.提升沟通效率.本文通过两个简单的例子来看看PowerBI中如何创建动态标题. /01/ 拿之前 ...

  • 如何在Power BI中随心所欲的搭配色彩?

    面对一个可视化对象,我们最先注意到的特征就是颜色,它的重要性不言而喻,在PowerBI中,配色同样是可视化的重头戏,本文来看看PowerBI中的如何设置各项颜色元素. PowerBI内置主题 Powe ...

  • 词云图,在Power BI中轻松制作

    不少星友曾问起PowerBI是否可以生成词云图,足见该图的流行度,在PowerBI中有一个专门的自定义视觉对象可以生成词云图:Word Cloud,这里就简单介绍一下该图的做法. 首先需要导入该自定义 ...

  • 如何在Power BI中制作正态分布图?

    有星友问,在PowerBI的图表中有没有正态分布图,其实并没有专门的正态分布图表,但并不是不能绘制正态分布图. 正态分布图本质也就是一个折线图而已,只要构造出符合正态分布的数据,画正态分布图与平时生成 ...

  • 在Power BI中做个不一样的气泡图

    周末轻松一下,认识一个好玩的气泡图:Impact Bubble Chart. 就是这个自定义图表: 它与一般气泡图相比,最明显的特征就是它带有一个小尾巴,表示从上一个状态转移到目前状态的轨迹. 因为要 ...

  • 如何在Power BI中,DIY属于你的可视化地图?

    这篇文章来自星球嘉宾AgnesJ. 她分享了一个巧妙的自定义地图实现思路,利用这个思路,你可以随心所欲的画出自己想要的地图,比如小区地图.商场地图等,并且都是可以动态交互的哦. 下面直接进入正文. 如 ...

  • 在 Power BI 中学会使用注释

    在计算机语言中,为了提升代码的可读性,一般都会有注释功能,注释是代码中的自然语言文本,但不会被执行,因而可以实现编写者的特定意图,比如对代码的含义进行解释,对相关的背景进行说明等. 在PowerBI中 ...

  • 在Power BI中制作时间表的两种方式

    日常分析用到的数据,有些时间维度,不仅仅只是日期,更细化到时间,包含时分秒,对这些数据的分析,仅仅利用日期表,就无法实现对小时.分钟.甚至是秒级粒度的分析. 如果需要按更细的时间粒度分析,直接的做法, ...