欢迎光临散文网 会员登陆 & 注册

PowerBI之DAX神功:第1卷第2回 避免使用双向箭头

2021-08-02 07:11 作者:孙兴华zz  | 我要投稿


图1-2-1

一、单向箭头方向,从1端指向多端,代表1端可以筛选多端:

例如:无论是公司和员工谁触犯法律都会受到制裁。可是只有员工违反了自己公司的规定才会受到公司规章制度的处罚。【详见图1-2-1】

二、你还会遇到另一种情况:双向箭头


<1> 双击“连接线”,打开对话框:

<2> 切换后,即可实现双向筛选:

<3> 接下来,我们分别利用花名册和成绩表制作两个度量值

度量值公式如下:

人数 = count('花名册'[学号])

总分 = sum('成绩表'[成绩])

<4> 在报表中,做两个矩阵,进行测试

<5> 如果你将模型中的箭头方向变回“单一”,多端将无法筛选一端

现在,我们聊一聊双向箭头弊端

图1-2-2

公司规定岂能容你个人随意更改?【详见图1-2-2】

正义可能会迟到,但是正义永远不会缺席。


图1-2-3

原模型:【详见图1-2-3】

这时,表1筛选表4只有一条路


图1-2-4

当表2与表3的连线改成双向【详见图1-2-4】

这时,肉眼看表1筛选表4有两条路:

 第1条路:表1直接筛选表4                          

第2条路:表1途径表2和表3,最后筛选表4

真的是这样吗?我们试试看

我们举个简单的例子:


图1-2-5

如图1-2-5,你真的认为,它是在线路1和线路2中任选一条线路吗?当你将线路1的关系删除时,矩阵中的筛选失效了。线路2根本行不通。


表2筛选表3,是可以的。多端直连1端(中间无过渡表),测试通过!

表3筛选表4,是可以的。1端筛选多端,测试通过!

表1跨表2筛选表3,是可以的。因为是1端通过中间表筛选1端。


使用表1跨越表2和表3筛选表4,数据不是我们需要的

表2跨越表3筛选表4,数据不是我们需要的


也许有些人举出的案例是可以的,我故意举的反面案例,有100个成功案例,但是有一个失败的,就证明它有问题。


所以,连《The Definitive Guide to DAX》也不推荐大家使用双向连接。假设有100个杀人犯都是男性,你不能说男性都是杀人犯,这叫以偏概全,不能这样讲话,但是,如果一个路段多发事故,交管部门善意提醒,你说自己这条路走了多少年了,怎么就没出过事故呢?这叫杠精。


这里有两个问题

第一:真正做分析的时候,你关注不过来,你万一忘了这件事,他没报错,但是给了一个不是你需要的数据,造成最终结果错误!

第二:举这些例子只是告诉你尽量避免这么做。这就绕回了上节课的知识 【表关系】


我们使用表1、表3、表5建立1对多的关系,这样就避开了很多难以预知的问题

《陈翔6点半》有一集是这么演的,米线打出租车,司机是毛台,米线发现司机绕路了,毛台说我没绕,米线说你就是绕了,你绕这一个环岛多个圈了?


        如果一个人是给你举例说明,这是案例,只是讲明白某一个知识点,那你不用抬扛。可是为了防止走火入魔,建议你将表拿出来简单画一画,看看是不是能化繁为简。


        就好比讲部分Excel的讲师不愿意让你接触数据库,找出各种理由阻止你,你一旦了解数据库基础知识,ExcelVBA难度直接降低30%。DAX也是同理。


        你可能会认为这个案例用表中的两个多端是可以合并的,实际工作中的表不一定是这样的,没关系,只要你对自己的业务充分理解,且你的表与表之间可以连线,那他们就一定可以简化。


        既然已经来到DAX世界,就不需要再用SQL的方法去处理了,后面的课程中,会一一向大家介绍DAX处理方法。


本文章视频版已同步更新S01E02

https://www.bilibili.com/video/BV1YE411E7p3


PowerBI之DAX神功:第1卷第2回 避免使用双向箭头的评论 (共 条)

分享到微博请遵守国家法律