今天給大家分享下DAX函數(shù)中的ALL家族函數(shù),學(xué)會(huì)了這個(gè)函數(shù)可以靈活的計(jì)算各種占比鳞绕,廢話不多講,開說:
本文邏輯是按照先說函數(shù)語法再結(jié)合實(shí)例舉例胳泉,再做的過程中會(huì)引入三個(gè)函數(shù)的使用
首先說all函數(shù)拐叉,這個(gè)用法比較簡單,就是清除任何篩選器扇商,返回一張沒有篩選的表凤瘦,一般是求占總計(jì)百分比
語法:all(表)或all(列)
返回:一張沒有篩選的表,不作用于任何篩選器
注意事項(xiàng):all函數(shù)如果引用同一張表的不同列時(shí)案铺,寫法all(表1列1蔬芥,表1列2);如果引用不同表的列時(shí)控汉,寫法all(表1列1)笔诵,all(表2列1),同樣引用不同表時(shí)姑子,寫法all(表1)乎婿,all(表2),用逗號(hào)“街佑,”連接多條件清除篩選
案例:是模擬了一張各省各城市門店銷售量的一張表
需求:城市和省份占總計(jì)占比
函數(shù)編寫:
銷售量=sum('銷售數(shù)據(jù)'[數(shù)量])
all總計(jì) = CALCULATE([銷售量],ALL('地域表'))
all總計(jì)占比 = DIVIDE([銷售量],[all總計(jì)])
邏輯講解:
銷售量很好理解谢翎,受此表行上下文影響,是每個(gè)城市(省份)的銷售量
all總計(jì)中calculate條件中的all表是清除所有篩選器條件沐旨,也就是說不受此表篩選條件的影響森逮,返回的是地域表整張表,結(jié)合calculate計(jì)算出總計(jì)銷售量磁携,然后用divide安全除法求占比
如果想要求城市占省份的占比呢褒侧,這就需要用到allexcept函數(shù)
allexcept函數(shù)使用
語法:allexcept(篩選表,篩選表中的列1,篩選表中的列2,..)
except:除...之外璃搜,除了指定的某列之外
返回:一張表篩選過的表,保留篩選列拖吼,其他篩選均刪除,意思就是除了篩選列受篩選影響这吻,其他都不受影響
需求:城市占省份的占比
函數(shù)編寫:
銷售量=sum('銷售數(shù)據(jù)'[數(shù)量])
allexcept省份 = CALCULATE([銷售量],ALLEXCEPT('地域表','地域表'[省份]))
allexcept城市占省份占比 = DIVIDE([銷售量],[allexcept省份])
邏輯講解:
allexcept省份度量值的篩選列是省份吊档,意思就是除了省份可以按照篩選條件進(jìn)行計(jì)算銷售量外其他篩選均刪除,所以直接均顯示了省份的銷售量唾糯,再根據(jù)sum求得的銷售量怠硼,得出城市占省份占比
相信大家都看到了allexcept求得的城市占省份占比中省份占比是100%,如果想讓省份按照篩選的省份總計(jì)顯示的百分比呢移怯,這就需要使用allselected函數(shù)
allselected函數(shù)使用
語法:allselected(表)或者allselected(列)
引用大佬總結(jié)是:清除內(nèi)篩選器香璃,保留外篩選器,效果是返回滿足外側(cè)篩選的所有行舟误。內(nèi)外側(cè)篩選器通常由矩陣層級(jí)和切片器擔(dān)任葡秒。
用處:直觀占比,篩選哪些子類嵌溢,子類占比是按篩選分類100%計(jì)算占比
需求:讓內(nèi)篩選省份按外篩選的省份總計(jì)顯示百分比
函數(shù)編寫:
銷售量=sum('銷售數(shù)據(jù)'[數(shù)量])
allselected篩選統(tǒng)計(jì) = CALCULATE([銷售量],ALLSELECTED('地域表'))
allselected篩選分類占總計(jì) = DIVIDE([銷售量],[allselected篩選統(tǒng)計(jì)])
邏輯講解:內(nèi)篩選省份是矩陣表中的眯牧,外篩選省份是切片器中自選的,矩陣表中的省份占三個(gè)省份湖北赖草,吉林学少,江蘇的銷售量總計(jì),內(nèi)篩選器原本是所有省份每個(gè)城市的數(shù)據(jù)秧骑,使用了allselected函數(shù)后只剩切片器篩選的省份數(shù)據(jù)版确,內(nèi)篩選銷售量除以外篩選銷售量得出占比
還記得
allexcept城市占省份占比 = DIVIDE([銷售量],CALCULATE([銷售量],ALLEXCEPT('地域表','地域表'[省份])))吧,學(xué)了allselected函數(shù)的話乎折,還可以靈活使用绒疗,等同于
allexcept城市占省份占比2 = DIVIDE([銷售量],CALCULATE([銷售量],ALLSELECTED('地域表'[城市])))
all系列函數(shù)理解起來還是有些困難的,需要結(jié)合上下文理解笆檀,必須得通過不斷得練習(xí)和思考忌堂,才能真正掌握盒至,今天得分享就結(jié)束了酗洒,我是Sugargl,喜歡的話可以關(guān)注我,歡迎指正,88??