Power BI之DAX神功:第4卷第16回 對(duì)事件進(jìn)行排序「組內(nèi)排名」
本節(jié)課需求,每個(gè)會(huì)員卡號(hào)的訂單進(jìn)行排序,A、B、C三個(gè)組,每個(gè)組排名1、2、3...
講實(shí)話,沒(méi)有人去分析這個(gè)問(wèn)題,遇到這個(gè)問(wèn)題時(shí),我們一般在數(shù)據(jù)清洗環(huán)節(jié)就搞定了。
《權(quán)威指南》目的幫你復(fù)習(xí)兩個(gè)提速知識(shí):【1】縮小迭代范圍 【2】避免轉(zhuǎn)換上下文



一、現(xiàn)在的電腦配置這樣做很慢
現(xiàn)在很多新出的3A游戲使用游戲默認(rèn)設(shè)置(除非你有高配或頂配PC)否則幀數(shù)高不了,如果我們配置低就要去修改設(shè)置,例如降低分辨率,關(guān)閉光追等等,但是若干年后你的PC升級(jí)到當(dāng)代入門級(jí)別時(shí),再回過(guò)頭來(lái)玩現(xiàn)在的游戲,能做到默秒全。
優(yōu)化確實(shí)好,但是你要清楚,一個(gè)不會(huì)開車的人,是做不到賽車手那樣漂移的;你寫不出速度慢的公式就不可能寫出優(yōu)化公式;就好比SQL為什么要學(xué)增刪改查,直接學(xué)優(yōu)化不香嗎:)能說(shuō)出這話的人都是沒(méi)學(xué)過(guò)SQL優(yōu)化的人。
所以,將來(lái)如果你見(jiàn)到有人這樣說(shuō):誰(shuí)誰(shuí)誰(shuí)寫的公式慢,他沒(méi)講優(yōu)化。你先問(wèn)問(wèn)自己,是不是寫個(gè)公式都很難?這個(gè)時(shí)候你談何優(yōu)化?切記:你是大一新生,目前還不是科學(xué)家,要一步一步的走。
《DAX神功》第1卷第14回當(dāng)前行函數(shù)
返回結(jié)果:

《DAX神功》第3卷第17回我們做了詳細(xì)講解,這是將行上下文轉(zhuǎn)換成篩選上下文的行為,有幾個(gè)列就等于有幾個(gè)篩選器,迭代每一行篩選每一列。以現(xiàn)在主流配置來(lái)講,當(dāng)數(shù)據(jù)量大了以后會(huì)很慢。解決問(wèn)題的方法無(wú)非有兩種:(1)縮小銷售表的行數(shù)(2)避免行上下文轉(zhuǎn)換成篩選上下文
Ps: 《權(quán)威指南》本例使用了Allexcept函數(shù),因?yàn)樗谋砀窳魉?hào)和會(huì)員卡號(hào)組合不唯一,所以它需要保留會(huì)員卡列的篩選,取消其它列的篩選。詳見(jiàn)《DAX神功》答網(wǎng)友問(wèn)01
二、縮小迭代表范圍與避開行上下文
當(dāng)我們將銷售表?yè)Q成這個(gè)樣子時(shí):流水號(hào)和會(huì)員卡號(hào)中出現(xiàn)了大量重復(fù),

你首先要考慮取非重復(fù)值的表,你頭腦要非常清楚,完成這項(xiàng)工作我們只需要流水號(hào)和會(huì)員卡號(hào)這兩列,其它列與我們現(xiàn)在要完成的需求無(wú)關(guān)。
想取流水號(hào)和會(huì)員卡號(hào)去重后的表,方法太多了,SUMMARIZE、ALL等都可以,我們?cè)谛陆ū碇袦y(cè)試:
返回結(jié)果:

接下來(lái)我們對(duì)這張表,分組排序:同時(shí)滿足會(huì)員卡號(hào)=當(dāng)前行會(huì)員卡號(hào) 與 流水號(hào)<=當(dāng)前行流水號(hào) 的表計(jì)數(shù)。原理在下面
返回結(jié)果:

原理:如果下圖你看不懂,證明《DAX神功》第1卷第14回 和 《火力全開》第10課你全忘了

小提示:很多人放到矩陣中發(fā)生了這樣一幕

解決方法:對(duì)計(jì)算列【流水號(hào)排序】選擇不匯總

三、利用RankX函數(shù)速度會(huì)更快
RankX因?yàn)樗惴ú煌?,可能?huì)快一些
原理很簡(jiǎn)單,我們對(duì)SUMMARIZE得到流水號(hào)與會(huì)員卡號(hào)去重后的表,篩選會(huì)員卡號(hào)=當(dāng)前行會(huì)員卡號(hào)的表,對(duì)這張表的流水號(hào)進(jìn)行排序,因?yàn)镽ANKX默認(rèn)降序,你要改成升序。至于第3參數(shù)和第5參數(shù)(中國(guó)/國(guó)際排名)這里都用不到的。如果RankX你已經(jīng)忘干凈了,回去補(bǔ)習(xí)一下《DAX神功》第2卷第5回~第2卷第9回



《孫興華講PowerBI火力全開》PowerBI必學(xué)課程
https://www.bilibili.com/video/BV1qa4y1H7wp
《DAX神功》文字版合集:
https://www.bilibili.com/read/readlist/rl442274
《DAX神功》視頻版合集:
https://www.bilibili.com/video/BV1YE411E7p3
《DAX神功番外篇》文字版合集:
https://www.bilibili.com/read/readlist/rl478271
PowerBI(DAX函數(shù))、PowerQuery(M函數(shù))、Python辦公自動(dòng)化、Python爬蟲、Python數(shù)據(jù)分析、ExcelVBA、WordVBA、AccessVBA、MySQL等等
https://www.bilibili.com/read/cv10222110