數據可視化之DAX篇(二十三)ALLEXCEPT應用示例:更靈活的累計求和


https://zhuanlan.zhihu.com/p/67441847

累計求和問題,之前已經介紹過(有了這幾個公式,你也可以快速搞定累計求和),主要是基於比較簡單的情形,針對所有的數據進行累計求和。

現實中的需求並不總是這么簡單,稍微復雜一點的是按類別求累計,以帕累托分析為例,模擬數據如下,

 

 

這次不是按全部產品進行累計求和,而是在每一個產品類別內部進行累計求和,進而計算出類別內的累計占比。

根據之前學過的知識,其實也可以計算出來,這里直接給出另一種更簡潔且性能更優的方式,新建列,

累計銷售額 類別 = 
CALCULATE(
    SUM('產品表'[銷售額]),
    '產品表'[銷售額]>=EARLIER('產品表'[銷售額]),
    ALLEXCEPT('產品表','產品表'[產品類別])
)

結果如下,

 

累計占比 類別 = 
DIVIDE(    
    [累計銷售額 類別],
    CALCULATE(
        SUM('產品表'[銷售額]),
        ALLEXCEPT('產品表','產品表'[產品類別])
    )
)

 

 

這樣就可以輕松進行產品類別內部的20/80分類或者ABC分類了。


ALLEXCEPT保留的過濾器,可以只有一列,也可以保留多列,再看下面的例子,

這是一張工資表,我們要計算出每名員工截至當月,本年累計的工資數。

這里就是按照員工和年度來求累計,新建列的DAX如下,

本年累計工資 = 
CALCULATE(
    SUM('工資表'[每月工資]),
    '工資表'[年度月份]<=EARLIER('工資表'[年度月份]),
    ALLEXCEPT('工資表','工資表'[年度],'工資表'[姓名])
)

ALLEXCEPT函數中有兩個參數列,就是保留了這兩個過濾器,結果如下,

 

累計工資對每名員工分別求累計,並在新的一年重新開始計算,正是需要的結果。

ALLEXCEPT函數是不是很好用呢?

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM