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