將表達式的結果儲存為命名變數,然後你可以將它作為參數傳遞給其他測度表達式。 計算出 DAX 變數表達式的值後,即使你在其他表達式中引用該變數,這些值也不會改變。
語法
VAR <name> = <expression>
參數
| 術語 | 定義 |
|---|---|
name |
變數的名稱(標識元)。 不支援分隔符。 例如,輸入「varName」或 [varName] 會產生錯誤。 支援的字元集:a-z、A-Z、0-9。 0-9 不適合作為第一個字元。 __ (雙底線)可以做為標識碼名稱的前置詞。 不支援其他特殊字元。 不允許使用保留關鍵字。 不允許使用現有資料表的名稱。 不允許有空位。 |
expression |
一個 DAX 回傳純量或表值的表達式。 |
傳回值
包含表達式自變數結果的具名變數。
言論
當做自變數傳遞至 VAR 的表示式可以包含另一個 VAR 宣告。
當你參考變數時:
- 度量不能指涉測度表達式之外定義的變數,但可以指向定義在表達式內的函數範圍變數。
- 變數可以參考量值。
- 變數可以參考先前定義的變數。
- 你無法用 TableName[ColumnName] 語法來參考資料表變數中的欄位。
如需使用 VAR時的最佳做法,請參閱 使用變數來改善 DAX 公式。
若要深入瞭解如何在
查詢中使用 ,請參閱 查詢。
例
本文中的範例可以搭配範例 Adventure Works DW 2020 Power BI Desktop 模型使用。 若要取得模型,請參閱 DAX 範例模型。
若要在不使用變數的情況下計算逐年成長的百分比,您可以建立三個不同的量值。 第一個量值會計算銷售金額的總和:
Sum of Sales Amount =
SUM ( Sales[Sales Amount] )
第二個量值會計算前一年的銷售額:
Sales Amount PreviousYear =
CALCULATE ( [Sum of Sales Amount], SAMEPERIODLASTYEAR ( 'Date'[Date] ) )
然後,您可以建立第三個量值,結合其他兩個量值來計算成長百分比。 請注意,銷售金額總和用於兩個地方:首先是檢查銷售是否存在,然後是計算百分比。
Sum of SalesAmount YoY%: =
IF (
[Sum of Sales Amount] && [Sales Amount PreviousYear],
DIVIDE (
( [Sum of Sales Amount] - [Sales Amount PreviousYear] ),
[Sales Amount PreviousYear]
)
)
藉由使用變數,您可以建立計算相同結果的單一量值:
YoY% =
VAR Sales =
SUM ( Sales[Sales Amount] )
VAR SalesLastYear =
CALCULATE ( SUM ( Sales[Sales Amount] ), SAMEPERIODLASTYEAR ( 'Date'[Date] ) )
RETURN
IF ( Sales && SalesLastYear, DIVIDE ( Sales - SalesLastYear, SalesLastYear ) )
透過使用變數,你可以以更易讀的方式得到相同的結果。 而且因為表達式的結果會儲存在變數中,測量的效能會顯著提升,因為它 DAX 不會每次使用都重新計算。