PowerBI之DAX神功番外篇27. 你還真別瞧不起“套路”
網(wǎng)友提問:

案例表:


先做一個(gè)度量值
接下來網(wǎng)友使用這樣一個(gè)度量值:
這是《DAX神功》番外篇第3回講的知識
網(wǎng)友知道總計(jì)可以為空,但是他想讓總計(jì)變成:7+10+5 = 22
放到矩陣上發(fā)現(xiàn):

說一些名詞,什么篩選、構(gòu)造數(shù)據(jù)集,這些都沒有意義。
網(wǎng)友提供的度量值1,是矩陣行標(biāo)題篩選后才計(jì)算的

例如我們在新建列中篩選“張三”就可以

但是,你現(xiàn)在是{“張三”,“李四”,“王五”}? 它不是一個(gè)值
Selectedvalue有唯一值時(shí)返回該值,否則返回空

當(dāng)你的矩陣行標(biāo)題篩選時(shí),Selectedvalue就會返回唯一值,并傳遞這個(gè)值進(jìn)行計(jì)算。
但是總計(jì),那里并不是唯一值,我們讓總計(jì)為空的方法是不是說某列是唯一值,返回該值,否則返回空?

由于總計(jì)不是唯一值,SEARCH這時(shí)返回空,總計(jì)返回的是[總金額]這個(gè)度量值。

運(yùn)算順序:

首先要說這樣做沒錯(cuò),每個(gè)人需求不同,有些人就不需要總計(jì),
友情提示:SEARCH還是FIND區(qū)別《火力全開》講過了

你想判斷當(dāng)姓名是唯一值時(shí)返回哪個(gè)度量值、不是唯一值時(shí)返回哪個(gè)度量值,也可以。但是我覺得這樣很累,你要寫兩個(gè)度量值?我的“套路”可能性能沒你好,但你不能永遠(yuǎn)都停留在2010年的配置呀。
比如某海就評價(jià)過“套路”

像這個(gè)網(wǎng)友是一點(diǎn)不懂,人家叫你聲“老師”,你給人家講講
你不講人家的代碼哪錯(cuò)了,怎么改,我來講。
SummarizeColumns不支持大多數(shù)的度量值,《火力全開》和《DAX神功》都講了

這個(gè)網(wǎng)友需求是通過SummarizeColumns做笛卡兒積,你告訴他可以使用CROSSJOIN函數(shù)實(shí)現(xiàn)就好?!痘鹆θ_》筆記23.04中也講過,《DAX神功》中講了詳細(xì)的原理

selectcolumns是從表中選擇列(就算只選了一列,也是一張表)。度量值不能返回一張表。除非是一個(gè)只有一個(gè)標(biāo)量值的表。《DAX神功》第1卷第10回講的

人家要取名稱,最終加上一個(gè)minx或maxx就可以了。你用find或search直接篩選度量值最后還要考慮總計(jì)。這個(gè)很好懂的,我全國幼兒園畢業(yè)也看懂了,只是那位網(wǎng)友還不熟悉DAX函數(shù)而已。接下來我就講講用“套路”做今天這個(gè)需求
在新建表中先按順序測試:
第1步:笛卡爾積

第2步:添加列,找到的就返回位置
《火力全開》筆記20.04講的新建列

第3步:先篩選判斷列不為空的,再將來源列取出來

新建表的測試就到這里,我們可以寫度量值了
這些學(xué)完《火力全開》就能做出來,你說哪個(gè)我沒有講?

將度量值2放到矩陣上

這樣的操作,連四年級小朋友都聽懂了,有什么不好嗎?不要輕易的證明誰是錯(cuò)的,只需要把你認(rèn)為正確的發(fā)出來,讓觀眾去使用就可以了。
本文章配套課件已發(fā)評論區(qū)置頂,可下載測試

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