CALCULATE()函數是DAX數據分析表達式中最重要的函數!本文是關于CALCULATE()函數能力的幾點總結 !學會DAX數據分析表達式,讓你在PowerPivot透視表裡為所欲為,領先職場下一個十年!
第一,基本規則:CALCULATE()函數最少需要要兩個參數:第1個參數是進行數據彙總運算的DAX表達式,簡稱“彙總參數”;第2個參數是用于修改CALCULATE()函數所處當前篩選環境的DAX表達式,簡稱“篩選器參數”。
這裡所謂的“修改當前篩選環境”,含義是:CALCULATE()函數的第2個參數(篩選器參數)能夠在CALCULATE()所處當前篩選環境的基礎上對現有篩選條件進行“增改删”操作。
篩選器參數可以有多個。這裡特要别注意CALCULATE()函數的運算順序:總是先執行篩選器參數,最後執行彙總參數。
第二,當CALCULATE()函數應用于“計算列”或者其他“行上下文”環境時,CALCULATE()能夠識别“當前行”,并且,如果CALCULATE()的彙總參數所彙總的表格是所處外部“行上下文”環境表格的“下級表”時,那麼,CALCULATE()函數還能夠把“當前行”作為篩選條件,沿着數據模型表格間的“一對多”關系應用到下級表,也就是所謂的實現“行上下文轉換為(對下級表的)篩選上下文”。
第三,除了CALCULATE()函數在運算時“先執行第2個參數,再執行第1個參數”的基本運算順序外,CALCULATE()函數還有以下能力:CALCULATE()函數在執行運算時,首先識别其所處的當前篩選環境,即,CALCULATE()函數會判斷自己是應用在了普通的篩選環境中,還是應用在了計算列或者其他“行上下文”環境中。。。CALCULATE()函數會根據不同的應用環境後,決定不同的運算策略。
第四,任何一個DAX度量值表達式(非計算列表達式),即便其最外部沒有用CALCULATE()函數包裹,當該度量值表達式以其名稱的形式引用至計算列、其他DAX表達式、或者拖拽到PowerPivot透視表值區域時,也相當于自動地DAX表達式外部包裹一個不可見的CALCULATE()函數,實現前述CALCULATE()函數的邏輯運算規則。
,
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!