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))  

藉由使用變數,您可以取得相同但更容易閱讀的結果。 而且,由於運算式的結果會儲存在變數中,因此可以大幅改善量值效能,因為它不需要每次使用時重新計算。

使用變數來改善您的 DAX 公式
DAX 查詢