共用方式為


VAR

將表達式的結果儲存為具名變數,然後可以當做自變數傳遞至其他量值表達式。 一旦計算變數表達式的結果值之後,即使變數在另一個表達式中參考,這些值也不會變更。

語法

VAR <name> = <expression>

參數

術語 定義
name 變數的名稱(標識元)。
不支援分隔符。 例如,『varName』 或 [varName] 會導致錯誤。
支援的字元集:a-z、A-Z、0-9。
0-9 無效作為第一個字元。
__ (雙底線)可以做為標識碼名稱的前置詞。
不支援其他特殊字元。
不允許保留關鍵詞。
不允許現有數據表的名稱。
不允許空白空白空格。
expression 傳回純量或數據表值的 DAX 表示式。

傳回值

包含表達式自變數結果的具名變數。

言論

  • 當做自變數傳遞至 VAR 的表示式可以包含另一個 VAR 宣告。

  • 參考變數時:

    • 量值不能參考在量值表達式外部定義的變數,但可以參考表達式內定義的功能性範圍變數。
    • 變數可以參考量值。
    • 變數可以參考先前定義的變數。
    • 數據表變數中的數據行無法透過 TableName[ColumnName] 語法來參考。
  • 如需使用 VAR時的最佳做法,請參閱 使用變數來改善 DAX 公式

  • 若要深入瞭解如何在 查詢中使用 ,請參閱 查詢。

若要在不使用變數的情況下計算逐年成長的百分比,您可以建立三個不同的量值。 第一個量值會計算銷售金額的總和:

Sum of Sales Amount =
SUM ( Sales[Sales Amount] )

第二個量值會計算前一年的銷售額:

Sales Amount PreviousYear =
CALCULATE ( [Sum of Sales Amount], SAMEPERIODLASTYEAR ( 'Date'[Date] ) )

然後,您可以建立第三個量值,結合其他兩個量值來計算成長百分比。 請注意,SalesAmount 量值的總和用於兩個位置:先判斷是否有銷售,然後再一次計算百分比。

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

DAX 查詢