DAX從入門到精通?5-7 介紹allselected函數(shù)

allselect是個(gè)很有效的函數(shù),它可以只使用透視表上的頁面篩選器和切片器,來計(jì)算值。例如,我們建立如下的一個(gè)透視表。


image.png

這個(gè)報(bào)表里面,我們顯示了當(dāng)前行對(duì)應(yīng)的產(chǎn)品的銷售占總額的百分比。這里比較困難的地方是product color同時(shí)使用于行以及切片器。按照我們現(xiàn)有的知識(shí),我們會(huì)這樣寫函數(shù)。

[SalesPct] :=
DIVIDE (
[Sales Amount],
CALCULATE (
[Sales Amount],
ALL ( Product[Color] )
))

使用all函數(shù),我們移除了color字段上的篩選器。但是,all函數(shù)會(huì)移除來自于所有篩選器的篩選條件,即來自與行以及切片器,導(dǎo)致了結(jié)果的錯(cuò)誤。下面的透視表中,我們可以看到結(jié)果,這里總計(jì)不是100%,而是一個(gè)更小的數(shù)值。


image.png

這個(gè)問題的是,即使用戶選擇的是部分的顏色,分母計(jì)算的還是所有產(chǎn)品的總和。但是對(duì)于每一行,你計(jì)算百分比的時(shí)候,每行除的值都是大于當(dāng)前選擇的顏色的總和。

所以,我們需要的是只顯示選擇的顏色的值的總和,而不是所有顏色的產(chǎn)品的值的和。我們把這種計(jì)算稱為在可見情況下的計(jì)算,也就是可以按用戶所選來計(jì)算總額。這里我們使用的函數(shù)是allselected。我們按這個(gè)函數(shù)來計(jì)算:

[SalesPct] :=
DIVIDE (
[Sales],
CALCULATE (
[Sales],
ALLSELECTED ( Product[Color] )
))

這個(gè)函數(shù)的結(jié)果,初步來看,是正確的。

allselected只返回篩選器選擇的行的值。換句話說,也就是allselect忽略了透視表行列上的篩選條件,返回總的值。

allselected的參數(shù)可以使用下面三種不同的方式:

單一的列,例如allselected(product[color]),只返回選擇的color的總額。

整個(gè)表,allselected返回表所選擇的所有行。

沒有參數(shù),即allselected(),返回可見所有表的全部記錄。

通過allselected可以動(dòng)態(tài)的計(jì)算百分?jǐn)?shù)和比率。在第10章中,我們會(huì)深入的討論allselected,揭示一些更深更復(fù)雜的知識(shí)。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容