DAX中的變數

是小必,很高興在這裡遇見你,以Excel和Power BI會友。每天分享學習筆記。

DAX中的變數

本期內容主要來講解DAX中的變數,將幫助我們提高表示式的效能。

學習VBA,Python以及其他程式語言的朋友們都應該知道有變數這個重要的概念。在DAX中,也有變數,主要是用來避免重複使用程式碼,提高程式碼的執行效率。

變數可以使用關鍵字VAR來定義,同時與之匹配的是RETURN來返回表示式的值。

比如在計算列與度量值的這篇文章中,我們定義了三處計算列與一個度量值來計算毛利率。那麼使用VAR來定義變數的時候,我們就可以直接使用一個度量值來完成。如:

表示式中定義變數是沒有數量的限制的,但是必須是VAR與RETURN成對出現

。一個表示式中定義的變數只能使用在當前的表示式中,不能在當前的表示式之外使用該變數。也就是說

DAX中的變數只有區域性變數,不存在全域性變數

。所以當你在多個表示式中使用同一個名稱的變數的時候,變數在各自的表示式中計算值。

DAX中定義的變數是執行“惰性計算”,或者叫延時變數。

換句話說,如果一個變數在表示式沒有被使用,那麼這個變數將永遠不會被求值。如果需要計算,那麼該變數也只計算一次,後面呼叫的時候將讀取該變數以前計算過的值。

我們可以這樣理解:

當一個變數被觸發計算時,那麼就只計算一次,後面只讀取他計算過的值

。據此,我們在寫程式碼時可以頻繁地使用變數來最佳化程式碼,提高計算的效率。

使用VAR定義變數時,必須是DAX公式建立的度量值(表,列,邏輯值),也可以是一個常量。

變數只能先定義再使用,不能先使用再定義。

變數的命名只接受英文狀態,不接受中文狀態,同時變數的名稱不能包含特殊符號、空格或者數字等,同時也不能是保留字,但是可以使用下劃線。(如:Sales_Amount)

END

TAG: 變數表示式計算定義DAX