「DAX函式累加求和的方法

大家都知道,DAX函式中的度量值,自身已經具備篩選功能,但有時我們不希望被自動篩選,並且還要進行逐級的累加求和,這在DAX函式中怎麼實現呢?

例如我們有3款產品,從21年3月份開始持續銷售,我們按日期維度展示銷量;

首先建立度量值,銷量 = sum('銷售資料'[銷售數量])

按日期維度製作趨勢圖,無論是“月度”或者“季度”,度量值都會自動計算當前日期維度篩選後的總量;

   

按月度統計

   

按季度統計

當我們希望算累加值時,SUM函式就無法單獨滿足了,此時需要同時使用Calculate函式,All函式,Filter函式;

Calculate函式【作用:篩選,返回:按一定條件篩選後的值】

語法:Calculate(度量值 or 表示式,條件)

ALL函式【作用:清除篩選,返回:清除篩選後的表格或列】

語法:ALL('表名稱'[列名稱])

Filter函式【對篩選的表進行橫向的逐行掃描,也叫迭代函式】

語法:Filter(表,條件)

綜合以上幾個函式,我們再建立度量值進行累加求和

累加銷售 = CALCULATE('度量值'[銷量],FILTER(ALL('銷售資料'[銷售日期]),'銷售資料'[銷售日期] <= MAX('銷售資料'[銷售日期])))

   

累加銷售趨勢

在Excel表中,累加求和只需要新增一列,然後在每一個單元格寫入求和公式,這在少量資料時很容易實現!

但進行幾百萬,幾千萬的大資料分析時,Excel就無法滿足了,並且Excel本身錄入很多公式時,會非常佔用記憶體,導致Excel使用起來又卡又慢。當你學會使用以上DAX函式後,就可以快速在Power BI中得到結果;

當然,有時候累加求和也只是一箇中間值,實際資料分析中,我們會以累加求和的值作為分母,計算累計佔比,然後通過不同維度進行比例分析。