求和函数sumx_PowerBI公式-SUMX 函数
DAX設(shè)計(jì)了一系列后綴為X的函數(shù),SUMX,AVERAGEX,MAXX,MINX...它們與Filter和Earlier一樣,都屬于行上下文函數(shù)。我們就以最常用的SUMX舉例學(xué)習(xí),其他X函數(shù)的用法都是觸類旁通。SUMX的語(yǔ)法構(gòu)成很簡(jiǎn)潔,
最簡(jiǎn)單最常見(jiàn)的用法就是針對(duì)[銷售額]=[價(jià)格]*[數(shù)量]這類運(yùn)算。
它的計(jì)算過(guò)程有3步:
1.因?yàn)槭切猩舷挛暮瘮?shù),它會(huì)對(duì)'咖啡數(shù)據(jù)表'逐行掃描,創(chuàng)造行上下文。
2.算術(shù)表達(dá)式在行上下文中執(zhí)行運(yùn)算,比如第一行[價(jià)格]*[數(shù)量]=33*1=33, 按照同樣的邏輯每一行執(zhí)行算術(shù)表達(dá)式的計(jì)算...每一行都返回一個(gè)值。
3.SUMX記住了每一行返回的值,最后把所有的值加總起來(lái)求和。
可以想想,如果沒(méi)有SUMX這樣的行上下文函數(shù),我們求銷售額的方法就要繞個(gè)彎路。有點(diǎn)像在Excel中的操作,新建一列[乘積]=[價(jià)格]*[數(shù)量],再建一個(gè)度量值[銷售額]=SUM([乘積])。
這個(gè)方法可以達(dá)到與SUMX同樣的效果,然而我一般不建議大家這樣去做。為什么呢?這是一個(gè)度量值方法與計(jì)算列方法的對(duì)比問(wèn)題。在第一次介紹度量值與計(jì)算列時(shí)我們提到過(guò)它們的區(qū)別。
度量值只有放到圖表中才會(huì)執(zhí)行計(jì)算,而計(jì)算列在創(chuàng)建后就會(huì)把整列數(shù)據(jù)存儲(chǔ)在文件中,增大文件的容量。當(dāng)行數(shù)較少時(shí)可能感覺(jué)不到差別,然而如果你的表有幾百萬(wàn)行,那就意味著增加了幾百萬(wàn)行的數(shù)據(jù)。
所以一般的建議是不到萬(wàn)不得已的情況,我們不使用添加計(jì)算列的方法。
除了在度量值和計(jì)算列兩個(gè)方法中做出選擇,在寫(xiě)一個(gè)度量值時(shí),因?yàn)镈AX提供的公式很靈活,達(dá)到同一個(gè)目的方法也有很多。很多時(shí)候,不管白貓黑貓,能捉老鼠就是好貓。
比如我們?cè)俅位氐角骩銷售量7]這個(gè)例子,它還可以用SUMX來(lái)完成,效果是完全一樣的。
上面這個(gè)例子只是為了解釋SUMX的計(jì)算邏輯,并沒(méi)有體現(xiàn)它的過(guò)人之處。其實(shí)SUMX有一招特別好用的句型,在學(xué)習(xí)HASONEVALUE時(shí)我故意留了個(gè)鋪墊。[銷售量10]=IF(hasonevalue('日歷表'[季度]), [銷售量7],
blank())可以達(dá)到禁止求總計(jì)的效果,那么如果想要把它更改為對(duì)季度求和,達(dá)到對(duì)顯示數(shù)據(jù)求"總計(jì)"的效果呢?句型=SUMX(Values('表'[列]),[度量值])
對(duì)于其他的X函數(shù),MAXX,MINX,AVERAGEX工作原理是一樣的,唯一的區(qū)別是在最后的計(jì)算不是加總求和,而是對(duì)應(yīng)的求最大值,最小值,平均值。這些就不單獨(dú)做舉例說(shuō)明了。
樂(lè)見(jiàn)數(shù)據(jù)知識(shí)星球?t.zsxq.comPowerBI教程之PowerPivot與DAX - 網(wǎng)易云課堂?study.163.com總結(jié)
以上是生活随笔為你收集整理的求和函数sumx_PowerBI公式-SUMX 函数的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: c语言黄建灯第七章答案,c语言实训大纲.
- 下一篇: 大数据概论ppt_解读 | 货拉拉搬家大