PowerBI之DAX神功番外篇29. 解釋火力全開24課為什么用Max
網(wǎng)友提問:

這個(gè)案例是在《PowerBI火力全開》24.005? 這集講的
https://www.bilibili.com/video/BV1qa4y1H7wp

有兩張表:


要實(shí)現(xiàn)的功能,切片器篩選某個(gè)類型時(shí),可以查找相應(yīng)的電影

我們可以用Find函數(shù)也可以用SEARCH函數(shù),區(qū)別是后者可以使用通配符,但是不區(qū)分大小寫

第1步:我們先做切片器

第2步:你想想誰找誰?
是不是我在切片器上選誰?它選中的那個(gè)值就在銷售表【類型】那列里找,看誰包含這個(gè)值?
如下圖,我選的是傳記,在銷售表中【類型】那列找到所有包含傳記的。

課上我們提供的代碼:

關(guān)于變量a,可以用?Value(查詢表[類型])? 生成一張只有一列的表, 也可以直接用查詢表,在本案例中沒有區(qū)別,但是實(shí)際操作中,你的查詢表可能有若列,直接使用查詢表可能會(huì)影響性能,在《DAX神功》中已經(jīng)做出了講解。同樣可以寫成下面的這樣。
度量值:
先做一個(gè)矩陣,把行標(biāo)題放進(jìn)去。行標(biāo)題和列標(biāo)題都是篩選的,這個(gè)在Excel中的數(shù)據(jù)透視表里面就明白了。

A篩選A對應(yīng)的值,B篩選B對應(yīng)的值
SELECTEDVALUE( '銷售表'[類型] )? ?被ABCD...篩選返回各自的值
(因?yàn)殡娪安淮嬖谥貜?fù),就算翻拍也是兩部電影,可是其它的案例可能涉及重復(fù),如果名稱重復(fù),SELECTEDVALUE的意思是當(dāng)只有一個(gè)值時(shí)返回該值,否則返回空)

因?yàn)榛鹆θ_是基礎(chǔ)課程,我擔(dān)心大家使用時(shí),會(huì)遇到這個(gè)BUG,在這里我們使用MAX和MIN都可以。打個(gè)比方:

比如張三(男),前妻和現(xiàn)任,你應(yīng)該先把表處理好,現(xiàn)在很多人自己的表有問題,他怪公式,如果這時(shí)我使用了SELECTEDVALUE,那當(dāng)張三做行標(biāo)題時(shí),張三就會(huì)返回空,大家就會(huì)說公式錯(cuò)了。于是,我用MIN或MAX他會(huì)返回其中一個(gè),結(jié)果錯(cuò)了,那是使用者表的問題。這俗稱甩鍋。我這個(gè)人怎么想就怎么說,你們不問,我可以不說,問了我一定實(shí)話實(shí)說。
所以說變量a是考慮性能,變量b之所以我選擇MAX或MIN是因?yàn)橛行┤瞬涣私庾约旱谋?,他不懂他自己在做什么,不先對?shù)據(jù)進(jìn)行清洗整理。我寧可讓他結(jié)果不對,我也不能讓他顯示錯(cuò)誤(人家有值沒顯示出來)。顯示錯(cuò)誤,他會(huì)說我不行。結(jié)果不會(huì),我會(huì)說他不行。
后面的代碼應(yīng)該就沒有難度了,用Filter(表, SEARCH條件) 進(jìn)行篩選,用Countrows()>0 過濾掉空行,只顯示找到的。
方法不只這一種,條條大路通羅馬,比如這個(gè)問題,是不是也可以用我解答這位網(wǎng)友的方法做呢?可以用SELECTEDVALUE取切片器的選擇值,然后找表。條條大路通羅馬
https://www.bilibili.com/read/cv19439186

PowerBI學(xué)習(xí)順序:
【1】Access基礎(chǔ)篇,學(xué)習(xí)s01開頭的集數(shù),理解表格數(shù)據(jù)規(guī)范和表關(guān)系
https://www.bilibili.com/video/BV1tf4y117Sh
【2】PowerBI火力全開,學(xué)習(xí)函數(shù)語法,與應(yīng)用場景
https://www.bilibili.com/video/BV1qa4y1H7wp
【3】DAX神功,學(xué)習(xí)DAX函數(shù)原理
https://www.bilibili.com/read/readlist/rl442274
【4】PowerBI可視化圖表
https://www.bilibili.com/video/BV1W54y1i7dE
https://www.bilibili.com/video/BV1r54y1i75n