最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

Power BI之DAX神功:第3卷第5回 多張表使用SUMMARIZE函數(shù)

2021-11-30 14:33 作者:孫興華zz  | 我要投稿

《DAX神功》第1卷第15回 我們講解了?在篩選上下文中使用DISTINCT和SUMMARIZE

同時,也告知大家為何在《孫興華講PowerBI火力全》中我對SUMMARIZE一帶而過的原因

但是,之前我們始終站在DISTINCT、VALUES、SUMMARIZE、SummarizeColumns它們區(qū)別角度來講的SUMMARIZE,今天我們針對SUMMARIZE講講它的多表情況下的原理。

一、跨表使用SUMMARIZE函數(shù)

【新建表】表1 = VALUES('商品表'[規(guī)格])

【新建表】表2 = SUMMARIZE('商品表','商品表'[規(guī)格])

// 取商品表規(guī)格列不重復元素的表,這時結(jié)果是一樣的

//?《DAX神功》第1卷第15回 我們做過詳細解釋

【新建表】表3 = SUMMARIZE('銷售表','商品表'[規(guī)格])

// 因為銷售表和商品表之間存在關系,跨表就相當于:銷售表左外連接商品表

原理:要確保商品表和銷售表是一對多關系

如果你就想用多對多關系,你太厲害了,能用這個關系的人都是高手?!禗AX神功》第4卷我會講,但是我不推薦你用。明明知道山上有老虎,還是要向著山去行走,形容明知有危險或做的決定是錯的還是要繼續(xù)進行下去。

二、回答網(wǎng)友問題

網(wǎng)友對《權威指南》本節(jié)課計算每個產(chǎn)品每天的平均銷售量看不懂。

假設,我們在銷售表中增加同一商品的重復日期

相當于A01這個商品在2021/1/1有兩筆銷售

現(xiàn)在我如果想得到,每天每個商品名稱不重復的表:原理同上

【新建表】表4 = SUMMARIZE('銷售表','銷售表'[日期],'商品表'[商品名稱])

有了這張表,我想干嘛就可以干嘛了:

【新建表】表5 = addcolumns(SUMMARIZE('銷售表','銷售表'[日期],'商品表'[商品名稱]),"平均分",CALCULATE(AVERAGE('銷售表'[銷售])))

// Addcolumns函數(shù)的原理,我們在《DAX神功》第3卷第4回 剛剛講過

上圖我們在新建表下完成的,度量值下也可以完成:

【度量值】平均分度量值 = AVERAGEX(SUMMARIZE('銷售表','銷售表'[日期],'商品表'[商品名稱]),CALCULATE(AVERAGE('銷售表'[銷售])))

注意:與書不一樣的地方

【1】summarize生成一張臨時表:

【2】AVERAGEX與SumX一樣,都是迭代函數(shù),逐行計算,只是最后的列總計是求平均還是求和由AVERAGEX與SumX決定。

分析公式:AVERAGEX(臨時表,CALCULATE(AVERAGE('銷售表'[銷售])))

AVERAGEX(臨時表,表達式)

而表達式是:CALCULATE(AVERAGE('銷售表'[銷售]))

書中寫的是:CALCULATE(Sum('銷售表'[銷售])) // 也許他有他要表達的意思,但是從題意上講計算每個產(chǎn)品每天的平均銷售,應該是用我寫的表達式。

如果我們按書中的方式寫成:

度量值 =?AVERAGEX(SUMMARIZE('銷售表','銷售表'[日期],'商品表'[商品名稱]),CALCULATE(sum('銷售表'[銷售])))

// 書中的意思應該這樣說:計算每個產(chǎn)品每天的銷售平均值

三、其實也可以利用SUMMARIZE添加列

《DAX神功》第1卷第15回 我們提到從速度上講,SummarizeColumns優(yōu)于ADDCOLUMNS+SUMMARIZE優(yōu)于SUMMARIZE

SummarizeColumns不能應用于絕大多數(shù)度量值,所以在新建表中,我們優(yōu)先使用SummarizeColumns。在度量值中優(yōu)先使用ADDCOLUMNS+SUMMARIZE。

這里提到的速度并不是天壤之別,即便是數(shù)據(jù)量大了以后,也不一定會相差太離譜。例如ExcelVBA中定義變量的數(shù)據(jù)類型理論上要比不定義快,但是能快多少,大家心中應該已經(jīng)有數(shù)了。想用什么你隨意,寫對了才是最重要的,有能力還是建議將電腦配置成主流入門級別或以上。

【度量值】s = averagex(SUMMARIZE('銷售表','銷售表'[日期],'商品表'[商品名稱],"銷售",AVERAGE('銷售表'[銷售])),[銷售])

臨時表計算流程:SUMMARIZE('銷售表','銷售表'[日期],'商品表'[商品名稱],"銷售",AVERAGE('銷售表'[銷售]))

外層:averagex(臨時表,臨時表[銷售列])? // 這個迭代函數(shù)就不用介紹了

Addcolumns+SUMMARIZE的方法我們經(jīng)常在用:

【新建表】表7 = addcolumns(SUMMARIZE('銷售表','銷售表'[日期],'商品表'[商品名稱]),"新銷售",calculate(AVERAGE('銷售表'[銷售])))

// 我們通過addcolumns對臨時表添加列

【新建表】a加s = AVERAGEX(addcolumns(SUMMARIZE('銷售表','銷售表'[日期],'商品表'[商品名稱]),"新銷售",calculate(AVERAGE('銷售表'[銷售]))),[新銷售])

關于SUMMARIZE分組聚合、子類別小計與總計、只顯示總計,我們已經(jīng)在《DAX神功》第1卷第15回 做了詳細解釋

孫興華講PowerBI火力全開》PowerBI必學課程

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

《DAX神功》文字版合集:

https://www.bilibili.com/read/readlist/rl442274

《DAX神功》視頻版合集:

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

PowerBI(DAX函數(shù))、PowerQuery(M函數(shù))、Python辦公自動化、Python爬蟲、Python數(shù)據(jù)分析、ExcelVBA、WordVBA、AccessVBA、MySQL等等

https://www.bilibili.com/read/cv10222110

Power BI之DAX神功:第3卷第5回 多張表使用SUMMARIZE函數(shù)的評論 (共 條)

分享到微博請遵守國家法律
图片| 昆山市| 新河县| 张北县| 怀集县| 水城县| 锡林浩特市| 香格里拉县| 习水县| 育儿| 阿巴嘎旗| 石狮市| 崇阳县| 忻城县| 关岭| 昌平区| 陵川县| 岱山县| 余江县| 东兴市| 正安县| 唐海县| 土默特右旗| 双辽市| 盖州市| 林甸县| 杭锦后旗| 芜湖县| 和顺县| 泽普县| 巴塘县| 长沙县| 全椒县| 广宗县| 新巴尔虎右旗| 乌兰县| 潼关县| 洛浦县| 平武县| 东至县| 娱乐|