VAR
名前付き変数として式の結果を格納します。格納後、他のメジャー式に引数として渡すことができます。 ある変数式の結果の値が計算されたら、変数が別の式で参照される場合でも、その変数は変わりません。
VAR <name> = <expression>
用語 | 定義 |
---|---|
name | 変数の名前 (ID)。 区切り記号はサポートされていません たとえば、'varName' や [varName] ではエラーが発生します。 サポートされている文字セット: a-z、A-Z、0-9。 0-9 は最初の文字として使用できません。 __ (2 つの下線) は ID 名のプレフィックスとして使用できます。 その他の特殊文字は使用できません。 予約キーワードは使用できません。 既存テーブルの名前は使用できません。 空のスペースは許可されません。 |
expression | スカラー値またはテーブル値を返す DAX 式。 |
式の引数の結果を含む名前付き変数。
VAR に引数として渡される式には別の VAR 宣言を含めることができます。
変数を参照する状況:
- メジャーはメジャー式の外で定義されている変数を参照できませんが、式内で定義されている関数スコープ変数を参照できます。
- 変数はメジャーを参照できます。
- 変数は、前に定義された変数を参照できます。
- テーブル変数の列は TableName[ColumnName] 構文経由で参照できません。
VAR を使用する場合のベスト プラクティスについては、「変数を使用して DAX の数式を改善する」を参照してください。
DAX クエリ内での VAR の使用方法の詳細については、「DAX クエリ」を参照してください。
変数を使用せずに前年比成長率を計算するには、別個のメジャーを 3 つ作成できます。 この最初のメジャーでは売上高の合計が計算されます。
Sum of SalesAmount = SUM(SalesTable[SalesAmount])
2 つ目のメジャーでは、前年の売上高が計算されます。
SalesAmount PreviousYear =
CALCULATE([Sum of SalesAmount],
SAMEPERIODLASTYEAR(Calendar[Date])
)
これで、他の 2 つのメジャーを組み合わせた 3 つ目のメジャーを作成し、成長率を計算できます。 Sum of SalesAmount メジャーが 2 か所で使用されていることにご注意ください。まず売上の有無が判断され、それから率が計算されます。
Sum of SalesAmount YoY%: =
IF([Sum of SalesAmount] ,
DIVIDE(([Sum of SalesAmount] – [SalesAmount PreviousYear]), [Sum of SalesAmount])
)
変数を使用することで、同じ結果を算出するメジャーを 1 つ作成できます。
YoY% =
VAR Sales =
SUM(SalesTable[SalesAmount])
VAR SalesLastYear =
CALCULATE ( SUM ( SalesTable[SalesAmount] ), SAMEPERIODLASTYEAR ( 'Calendar'[Date] ) )
return if(Sales, DIVIDE(Sales – SalesLastYear, Sales))
変数の使用により、同じ結果が得られて、しかも読みやすくなります。 また、式の結果が変数に格納されるので、使用のたびに再計算される必要がないので、メジャーのパフォーマンスが大幅に向上します。