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

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

Power BI之DAX神功:第3卷第4回 ADDCOLUMNS函數(shù) 你不一定會用

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

《孫興華講PowerBI火力全開》第26課 我們學習了ADDCOLUMNS函數(shù)

今天我們細講這個函數(shù)的原理

一、只能應用于新建表,不能應用于新建列

ADDCOLUMNS函數(shù)返回的是一張表,當然是表函數(shù)了,可是抬扛的人會說沒講原理,那就講原理唄,滿足哈羅雷球白夕尚*的需求。

【1】新建表

新建表1 = ADDCOLUMNS('花名冊',"總分",CALCULATE(SUM('成績表'[分數(shù)])))

//?CALCULATE(SUM('成績表'[分數(shù)])) 可以使用度量值代替,例如:總分數(shù)=SUM('成績表'[分數(shù)])

新建表2 = ADDCOLUMNS(VALUES('花名冊'[姓名]),"總分",CALCULATE(SUM('成績表'[分數(shù)])))

新建表2 = ADDCOLUMNS(DISTINCT('花名冊'[姓名]),"總分",CALCULATE(SUM('成績表'[分數(shù)])))

注意:ADDCOLUMNS是迭代函數(shù),是行上下文,迭代第1參數(shù)那張表的每一行所有列。

所以第3參數(shù),必需具有篩選功能才能適配每一個姓名,要么我們使用度量值,要么就套上calculate進行上下文轉(zhuǎn)換。

如果我們沒有轉(zhuǎn)換第三參數(shù),就會顯示所有人員成績總和:5+7+9=21

新建表3 = ADDCOLUMNS(DISTINCT('花名冊'[姓名]),"總分",SUM('成績表'[分數(shù)]))

【2】不可以應用于新建列

【錯誤】新建列 = ADDCOLUMNS('花名冊',"總分",CALCULATE(SUM('成績表'[分數(shù)])))

這里要搞清楚新建表和新建列的區(qū)別:

新建表的計算順序:

新建列的計算順序:

我們上圖使用Addcolumns返回了一張多行多列的表,它不轉(zhuǎn)成標量值。《DAX神功》第1卷第10回 將表用作標量? 中我們講過的知識,如下圖所示:只有一行一列一個單元格的表才能轉(zhuǎn)成標量值

《DAX神功》第1卷第10回?

那應該怎么做?

新建列 = CALCULATE(SUM('成績表'[分數(shù)]))

或者寫成

【度量值】總分數(shù)=SUM('成績表'[分數(shù)])

新建列=[總分數(shù)]

計算原理:

二、可以增加多個計算列并實現(xiàn)篩選

【度量值】總分數(shù)=SUM('成績表'[分數(shù)])

【度量值】平均分=AVERAGE('成績表'[分數(shù)])

【新建表】新建表 = ADDCOLUMNS('花名冊',"總分",[總分數(shù)],"平均分",[平均分])

新建表1 = filter(ADDCOLUMNS('花名冊',"總分",[總分數(shù)],"平均分",[平均分]),[平均分]>3)

新建表2 = FILTER('花名冊',[平均分]>3)

// 不使用Addcolumns我們也能找到符合條件的人,但是不能顯示添加的列

三、使用 ADDCOLUMNS 代替 SUMMARIZECOLUMNS

因SUMMARIZECOLUMNS不能應用于大多數(shù)度量值,所以我們使用SUMMARIZE+ADDCOLUMNS的組合來實現(xiàn)。

詳見《DAX神功》第1卷第15課

四、網(wǎng)友提問

問:《權(quán)威指南》關(guān)于這一節(jié)的計算占銷售額15%的產(chǎn)品集合,看不懂。

答:受中西方文化的影響,此問題他標題描述不到位,但是人家下面有步驟說明,你看他過程應該能猜出來意思的。下圖是我在Excel中進行的數(shù)據(jù)模擬

如上圖所示,

1.前兩列是原始表,我在Excel中算出銷售這一列的總和是465,新建總銷售這一列,全部填充465。

2.用每個商品的 銷售 / 總銷售 = 每個商品銷售的占比。再找出占前15%的商品。此案例我故意將銷售從1至30從小到大排列,這樣它肯定是從最后開始取6.24%+6.45%=12.69%,所以就取A29和A30。

3.右邊是我找到的規(guī)律,只要找到比銷售當前行大的所有行求和再除以465,少于15%的就是我要的。

4.我跟大家一再重復,一道題你人不會做,計算機就不會做,你可能會說,我要會還學DAX干嘛?我回復有這種想法的人:如果DAX能代替你,還要你干嘛?

5.數(shù)據(jù)分析,至少要有小學數(shù)學基礎(chǔ)(不是會考試,是真的懂),你忘記了數(shù)學知識,是因為你工作中用不到,我英語發(fā)音也忘光了,因為我用不到。大家的腦袋都差不多,誰也不可能將所有東西都裝進去,但是選擇裝什么內(nèi)容,是自己決定的。有一些人喜歡抬扛,他們說科學家口語好,數(shù)學也好,請問科學家打游戲嗎?普通人能與科學家比嗎?你為何沒成為科學家呢?如果人人都是科學家,那PS/XBOX/SWITCH/企鵝...這些在國內(nèi)就沒銷售了。

表名:Sheet3

我們一步一步通過測試做出結(jié)果:

第1步:建立度量值

分配銷售 = sum(Sheet3[銷售])

第2步:新建表,取商品列不重復值構(gòu)成的表,添加銷售列,將度量值分配給每一個值

// 我們只需要商品列,所以要用Values(列)或DISTINCT(列),同時也能杜絕因商品列有重復值時造成的錯誤。這一步好比Excel函數(shù)中的 sumif?

這張表是:tb1

第3步:從第一行開始,凡是比當前行銷售大的表,就統(tǒng)計他的銷售總計是多少,寫在新建列移動總計上面。

Var y=tb1[銷售]? ?指當前行指定單元格? 《DAX神功》第1卷第14回

filter(tb1,tb1[銷售]>=y)? ?篩選tb1中銷售列大于等于當前行銷售單元格值的所有行

sumx(表,表達式)? ?=>? ?sumx(篩選后的表,指定列)? ?=> 對篩選后的這張表指定列求和

第4步:這一步我們只是測試

懶惰計算:詳見DAX神功》答網(wǎng)友問04

我們使用移動總計除以測試,就得到了百分比:跟我在Excel里推導的結(jié)果是一樣的

第5步:篩選百分比小于等于15%的

tb3是我們測試讓你看到效果用的,實際使用中,tb3是可以省略的


孫興華講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卷第4回 ADDCOLUMNS函數(shù) 你不一定會用的評論 (共 條)

分享到微博請遵守國家法律
德州市| 九江县| 乐亭县| 牡丹江市| 海口市| 龙里县| 仁怀市| 峨边| 西城区| 精河县| 阿克陶县| 鄂托克前旗| 南召县| 玉环县| 罗定市| 勃利县| 九江市| 黎平县| 阳高县| 吐鲁番市| 凤冈县| 海兴县| 湄潭县| 游戏| 包头市| 大姚县| 东阿县| 玛纳斯县| 长春市| 剑川县| 平阳县| 偏关县| 古蔺县| 扎鲁特旗| 聂荣县| 东台市| 涞源县| 福鼎市| 曲阳县| 阿勒泰市| 岳阳市|