VAR

將表達式的結果儲存為命名變數,然後你可以將它作為參數傳遞給其他測度表達式。 計算出 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 不會每次使用都重新計算。