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

一、單向箭頭方向,從1端指向多端,代表1端可以篩選多端:
例如:無論是公司和員工誰觸犯法律都會(huì)受到制裁??墒侵挥袉T工違反了自己公司的規(guī)定才會(huì)受到公司規(guī)章制度的處罰?!驹斠妶D1-2-1】
二、你還會(huì)遇到另一種情況:雙向箭頭

<1> 雙擊“連接線”,打開對(duì)話框:

<2> 切換后,即可實(shí)現(xiàn)雙向篩選:

<3> 接下來,我們分別利用花名冊和成績表制作兩個(gè)度量值

度量值公式如下:
人數(shù) = count('花名冊'[學(xué)號(hào)])
總分 = sum('成績表'[成績])
<4> 在報(bào)表中,做兩個(gè)矩陣,進(jìn)行測試

<5> 如果你將模型中的箭頭方向變回“單一”,多端將無法篩選一端

現(xiàn)在,我們聊一聊雙向箭頭弊端

公司規(guī)定豈能容你個(gè)人隨意更改?【詳見圖1-2-2】
正義可能會(huì)遲到,但是正義永遠(yuǎn)不會(huì)缺席。

原模型:【詳見圖1-2-3】
這時(shí),表1篩選表4只有一條路

當(dāng)表2與表3的連線改成雙向【詳見圖1-2-4】
這時(shí),肉眼看表1篩選表4有兩條路:
?第1條路:表1直接篩選表4? ? ? ? ? ? ? ? ? ? ? ? ??
第2條路:表1途徑表2和表3,最后篩選表4
真的是這樣嗎?我們試試看
我們舉個(gè)簡單的例子:

如圖1-2-5,你真的認(rèn)為,它是在線路1和線路2中任選一條線路嗎?當(dāng)你將線路1的關(guān)系刪除時(shí),矩陣中的篩選失效了。線路2根本行不通。
表2篩選表3,是可以的。多端直連1端(中間無過渡表),測試通過!
表3篩選表4,是可以的。1端篩選多端,測試通過!
表1跨表2篩選表3,是可以的。因?yàn)槭?端通過中間表篩選1端。
使用表1跨越表2和表3篩選表4,數(shù)據(jù)不是我們需要的
表2跨越表3篩選表4,數(shù)據(jù)不是我們需要的
也許有些人舉出的案例是可以的,我故意舉的反面案例,有100個(gè)成功案例,但是有一個(gè)失敗的,就證明它有問題。
所以,連《The Definitive Guide to DAX》也不推薦大家使用雙向連接。假設(shè)有100個(gè)殺人犯都是男性,你不能說男性都是殺人犯,這叫以偏概全,不能這樣講話,但是,如果一個(gè)路段多發(fā)事故,交管部門善意提醒,你說自己這條路走了多少年了,怎么就沒出過事故呢?這叫杠精。
這里有兩個(gè)問題
第一:真正做分析的時(shí)候,你關(guān)注不過來,你萬一忘了這件事,他沒報(bào)錯(cuò),但是給了一個(gè)不是你需要的數(shù)據(jù),造成最終結(jié)果錯(cuò)誤!
第二:舉這些例子只是告訴你盡量避免這么做。這就繞回了上節(jié)課的知識(shí) 【表關(guān)系】


我們使用表1、表3、表5建立1對(duì)多的關(guān)系,這樣就避開了很多難以預(yù)知的問題


《陳翔6點(diǎn)半》有一集是這么演的,米線打出租車,司機(jī)是毛臺(tái),米線發(fā)現(xiàn)司機(jī)繞路了,毛臺(tái)說我沒繞,米線說你就是繞了,你繞這一個(gè)環(huán)島多個(gè)圈了?
? ? ? ? 如果一個(gè)人是給你舉例說明,這是案例,只是講明白某一個(gè)知識(shí)點(diǎn),那你不用抬扛。可是為了防止走火入魔,建議你將表拿出來簡單畫一畫,看看是不是能化繁為簡。
? ? ? ? 就好比講部分Excel的講師不愿意讓你接觸數(shù)據(jù)庫,找出各種理由阻止你,你一旦了解數(shù)據(jù)庫基礎(chǔ)知識(shí),ExcelVBA難度直接降低30%。DAX也是同理。
? ? ? ? 你可能會(huì)認(rèn)為這個(gè)案例用表中的兩個(gè)多端是可以合并的,實(shí)際工作中的表不一定是這樣的,沒關(guān)系,只要你對(duì)自己的業(yè)務(wù)充分理解,且你的表與表之間可以連線,那他們就一定可以簡化。
? ? ? ? 既然已經(jīng)來到DAX世界,就不需要再用SQL的方法去處理了,后面的課程中,會(huì)一一向大家介紹DAX處理方法。