VAR
將運算式的結果儲存為具名變數,然後將其作為引數傳遞給其他量值運算式。 計算變數運算式的結果值之後,即使在另一個運算式中參考變數,這些值也不會變更。
語法
VAR <name> = <expression>
參數
詞彙 | 定義 |
---|---|
NAME | 變數的名稱 (識別碼)。 不支援分隔符號。 例如,'varName' 或 [varName] 將會導致錯誤。 支援的字元集:a-z、A-Z、0-9。 0-9 不是有效的第一個字元。 允許 __ (雙底線) 作為識別碼名稱的前置字元。 不支援其他特殊字元。 不允許保留關鍵字。 不允許現有資料表的名稱。 不允許空格。 |
expression | 傳回純量或資料表值的 DAX 運算式。 |
傳回值
包含運算式引數結果的具名變數。
備註
作為引數傳遞至 VAR 的運算式可以包含另一個 VAR 宣告。
參考變數時:
- 量值不能參考在量值運算式外部定義的變數,但可以參考在運算式內部定義的功能範圍變數。
- 變數可以參考量值。
- 變數可以參考先前定義的變數。
- 資料表變數中的資料行無法透過 TableName[ColumnName] 語法參考。
如需使用 VAR 時的最佳做法,請參閱使用變數來改善您的 DAX 公式。
若要深入了解在 DAX 查詢中使用 VAR 的方式,請參閱 DAX 查詢。
範例
若不想使用變數來計算每年成長百分比,您可以建立三個不同的量值。 第一個量值會計算銷售額的總和:
Sum of SalesAmount = SUM(SalesTable[SalesAmount])
第二個量值會計算去年銷售額:
SalesAmount PreviousYear =
CALCULATE([Sum of SalesAmount],
SAMEPERIODLASTYEAR(Calendar[Date])
)
然後,您可以建立第三個量值,結合其他兩個量值來計算成長百分比。 請注意,SalesAmount 量值的總和會用於兩個位置;首先,用於判斷是否有銷售,然後再次計算百分比。
Sum of SalesAmount YoY%: =
IF([Sum of SalesAmount] ,
DIVIDE(([Sum of SalesAmount] – [SalesAmount PreviousYear]), [Sum of SalesAmount])
)
藉由使用變數,您可以建立單一量值來計算相同的結果:
YoY% =
VAR Sales =
SUM(SalesTable[SalesAmount])
VAR SalesLastYear =
CALCULATE ( SUM ( SalesTable[SalesAmount] ), SAMEPERIODLASTYEAR ( 'Calendar'[Date] ) )
return if(Sales, DIVIDE(Sales – SalesLastYear, Sales))
藉由使用變數,您可以取得相同但更容易閱讀的結果。 而且,由於運算式的結果會儲存在變數中,因此可以大幅改善量值效能,因為它不需要每次使用時重新計算。