POWER BI DAX函數(shù)應(yīng)用-統(tǒng)計函數(shù)(上)

1.ADDCOLUMNS(<table>, <name>, <expression>[, <name>, <expression>]…)和SELECTCOLUMNS(<table>, <name>, <scalar_expression> [, <name>, <scalar_expression>]…)

函數(shù)作用:ADDCOLUMNS是將計算列添加到給定的表或表的表達(dá)式中丸升,SELECTCOLUMNS是將計算列添加到空白表中冒冬。

應(yīng)用場景:ADDCOLUMNS/SELECTCOLUMNS函數(shù)通常與其他函數(shù)結(jié)合使用,為表新添計算列攻锰。

示例:為原始銷售記錄表添加一列“AA”偶洋,使該列為每種武器的累計銷量熟吏,并存儲為一張新表。

1.1 ADDCOLUMNS

原始銷售記錄表

新建表:

ADD = ADDCOLUMNS('銷售記錄',"AA",CALCULATE(SUM('銷售記錄'[數(shù)量]),ALLEXCEPT('銷售記錄','銷售記錄'[武器名稱])))

對'銷售記錄'表進(jìn)行添加列操作玄窝,添加的新列名稱為“AA”牵寺,該列的含義是計算每種武器的總銷量,借助ALLEXCEPT清除[武器名稱]對結(jié)果的影響恩脂,否則結(jié)果全部相同(為所有武器名稱銷量相加的值)帽氓。

ADDCOLUMNS函數(shù)新建表結(jié)果

ADDCOLUMNS函數(shù)可以實現(xiàn)目標(biāo)效果,但是并不需要這么多列俩块,反而容易影響判斷黎休,那么還可以這樣操作:

新建度量值:

總銷量 = SUM('銷售記錄'[數(shù)量])

新建表:

各武器銷量 = ADDCOLUMNS(ALL('銷售記錄'[武器名稱]),"AA",[總銷量])

計算結(jié)果:

ADDCOLUMNS函數(shù)計算結(jié)果

當(dāng)然,也可以使用SELECTCOLUMNS函數(shù)實現(xiàn)上述效果玉凯。

1.2 SELECTCOLUMNS

由于SELECTCOLUMNS函數(shù)是在一張空白表上添加列势腮,因此,無需添加原始銷售記錄表的所有列漫仆,假如現(xiàn)在想了解每種武器的總體銷量情況嫉鲸,通過下述操作即可實現(xiàn)。

新建表:

SELECT = DISTINCT(SELECTCOLUMNS('銷售記錄',"武器名稱",'銷售記錄'[武器名稱],"AA",CALCULATE(SUM('銷售記錄'[數(shù)量]),ALLEXCEPT('銷售記錄','銷售記錄'[武器名稱]))))

先看內(nèi)層歹啼,與ADDCOLUMNS函數(shù)類似玄渗,SELECTCOLUMNS函數(shù)也許借助ALLEXCEPT函數(shù)分別對各種武器求和座菠,不同的是,SELECTCOLUMN函數(shù)要將所需的列挑選出來藤树。

由于現(xiàn)在只有兩列浴滴,缺少了訂單編號、下單日期等的限制岁钓,計算結(jié)果會有許多重復(fù)項升略,因此還需DISTINCT函數(shù)來刪除重復(fù)項,可得到以下計算結(jié)果:

SELECTCOLUMS函數(shù)計算結(jié)果

2.AVERAGE(<column>),AVERAGEA(<column>),AVERAGEX(<table>,<expression>)

當(dāng)我們遇見以X結(jié)尾的函數(shù)時屡限,應(yīng)該意識到它一般來說是一個迭代器函數(shù)品嚣,而去掉X的函數(shù),一般就是它對應(yīng)的聚合函數(shù)钧大,比如SUM()和SUMX()翰撑。迭代器函數(shù)可以對表中的多個列進(jìn)行操作,并且可以在這些列中完成逐行求值啊央,而其對應(yīng)的聚合函數(shù)眶诈,只能在單個列上運行,并且不知道列中的各個行(沒有逐行求值)瓜饥。

僅憑文字或許難以理解逝撬,以下我將詳細(xì)介紹二者的區(qū)別。

函數(shù)作用:計算平均值(算術(shù)平均值)乓土。

三者差別:

AVERAGE函數(shù)與AVERAGEA函數(shù)類似宪潮,返回列中值的平均值,區(qū)別只在于趣苏,AVERAGE函數(shù)只能處理數(shù)值坎炼,而AVERAGEA函數(shù)既可以處理數(shù)值,又可以處理文本拦键。

AVERAGEA函數(shù)處理文本時:

? ? ? 計算結(jié)果為 TRUE 的值作為 1 計數(shù);

? ? ? 計算結(jié)果為 FALSE 的值作為 0(零)計數(shù)檩淋;

? ? ? 包含非數(shù)字文本的值作為 0(零)計數(shù)芬为;

? ? ? 空文本 ("") 作為 0(零)計數(shù)。

AVERAGE函數(shù)和AVERAGEX就是一對聚合函數(shù)和迭代器函數(shù)蟀悦,區(qū)別在于AVERAGEX具有對行的感知能力媚朦,一行一行地應(yīng)用所有過濾器后完成求值。

示例:多種武器在多個銷售城市的銷售數(shù)據(jù)如下日戈,現(xiàn)欲計算各個城市的所有武器的銷售金額的平均值询张。

原始數(shù)據(jù)

新建度量值:

銷售金額 = SUM('銷售記錄'[金額])

AVERAGEX = AVERAGEX(VALUES( '銷售記錄' [銷售城市]),[銷售金額])

VALUES('銷售記錄'[銷售城市])相當(dāng)于取出原始數(shù)據(jù)表中的所有銷售城市,自成一張表浙炼,并對該表中的每一行進(jìn)行求均值操作份氧。

我們再新建一個度量值:

AVERAGE = AVERAGE([金額])

不知你是否已經(jīng)猜想到了它們的結(jié)果分別是什么唯袄。

結(jié)果如下:

結(jié)果對比

對于AVERAGEX函數(shù),費城/洛杉磯/紐約/芝加哥的均值為各自的銷售金額除以1蜗帜,而總計行的均值為總銷售金額546/銷售城市總數(shù)量4=136.5.

對于AVERAGE函數(shù)恋拷,無法逐行求值,它所能做的就是在應(yīng)用過濾器之后將所有內(nèi)容添加到它所呈現(xiàn)的單列中厅缺。以費城為例蔬顾,費城就是它的過濾器,先篩選出費城的總銷售金額156湘捎,然后除以費城占據(jù)的行數(shù)7行诀豁,結(jié)果為22.29。

很顯然窥妇,該場景下舷胜,我們應(yīng)該使用AVERAGEX函數(shù)。

補(bǔ)充:實現(xiàn)上述功能秩伞,采取AVERAGEX函數(shù)的確是最簡單最方便的方法逞带,但是之前介紹過的篩選器函數(shù)SELECTEDVALUE、HASONEVALUE纱新、HASONEFILTER也是解決此問題的辦法之一展氓,不妨一試。

新建度量值:

SELECTEDVALUE = IF(SELECTEDVALUE( '銷售記錄' [銷售城市])=BLANK(),DIVIDE([銷售金額],DISTINCTCOUNT([銷售城市])),[銷售金額])

HANSONEVALUE0 = IF(HASONEVALUE('銷售記錄'[銷售城市]),[銷售金額],DIVIDE([銷售金額],DISTINCTCOUNT([銷售城市])))

HANSONEFILTER = IF(HASONEFILTER('銷售記錄'[銷售城市]),[銷售金額],DIVIDE([銷售金額],DISTINCTCOUNT([銷售城市])))

以上三種方式都可以得到正確的計算結(jié)果脸爱。

計算結(jié)果
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末遇汞,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子簿废,更是在濱河造成了極大的恐慌空入,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,386評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件族檬,死亡現(xiàn)場離奇詭異歪赢,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)单料,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,142評論 3 394
  • 文/潘曉璐 我一進(jìn)店門埋凯,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人扫尖,你說我怎么就攤上這事白对。” “怎么了换怖?”我有些...
    開封第一講書人閱讀 164,704評論 0 353
  • 文/不壞的土叔 我叫張陵甩恼,是天一觀的道長。 經(jīng)常有香客問我,道長条摸,這世上最難降的妖魔是什么悦污? 我笑而不...
    開封第一講書人閱讀 58,702評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮屈溉,結(jié)果婚禮上塞关,老公的妹妹穿的比我還像新娘。我一直安慰自己子巾,他們只是感情好帆赢,可當(dāng)我...
    茶點故事閱讀 67,716評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著线梗,像睡著了一般椰于。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上仪搔,一...
    開封第一講書人閱讀 51,573評論 1 305
  • 那天瘾婿,我揣著相機(jī)與錄音,去河邊找鬼烤咧。 笑死偏陪,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的煮嫌。 我是一名探鬼主播笛谦,決...
    沈念sama閱讀 40,314評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼昌阿!你這毒婦竟也來了饥脑?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,230評論 0 276
  • 序言:老撾萬榮一對情侶失蹤懦冰,失蹤者是張志新(化名)和其女友劉穎灶轰,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體刷钢,經(jīng)...
    沈念sama閱讀 45,680評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡笋颤,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,873評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了内地。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片伴澄。...
    茶點故事閱讀 39,991評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖瓤鼻,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情贤重,我是刑警寧澤茬祷,帶...
    沈念sama閱讀 35,706評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站并蝗,受9級特大地震影響祭犯,放射性物質(zhì)發(fā)生泄漏秸妥。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,329評論 3 330
  • 文/蒙蒙 一沃粗、第九天 我趴在偏房一處隱蔽的房頂上張望粥惧。 院中可真熱鬧,春花似錦最盅、人聲如沸突雪。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,910評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽咏删。三九已至,卻和暖如春问词,著一層夾襖步出監(jiān)牢的瞬間督函,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,038評論 1 270
  • 我被黑心中介騙來泰國打工激挪, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留辰狡,地道東北人。 一個月前我還...
    沈念sama閱讀 48,158評論 3 370
  • 正文 我出身青樓垄分,卻偏偏與公主長得像宛篇,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子锋喜,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,941評論 2 355

推薦閱讀更多精彩內(nèi)容