VAR
Przechowuje wynik wyrażenia jako nazwaną zmienną, która następnie może zostać przekazana jako argument do innych wyrażeń measure. Gdy wynikowe values zostały obliczone dla wyrażenia zmiennej, te valuesnot zmienić, evenif zmienna jest przywoływane w innym wyrażeniu.
Składnia
VAR <name> = <expression>
Parametry
Termin | Definicja |
---|---|
name |
Nazwa zmiennej (identyfikator). Ograniczniki są not obsługiwane. Na przykład wartość "varName" or [varName] spowoduje error. Obsługiwany zestaw znaków: a-z, A-Z, 0-9. 0–9 są not prawidłowe jako znak first. __ (podwójne podkreślenie) jest dozwolone jako prefiks nazwy identyfikatora. Nie są obsługiwane żadne inne znaki specjalne. Zastrzeżone słowa kluczowe not dozwolone. Nazwy istniejących tabel są dozwolone not. Puste spacje są dozwolone not. |
expression |
Wyrażenie DAX zwracające tabelę or skalarną value. |
Zwracanie value
Nazwana zmienna zawierająca wynik argumentu wyrażenia.
Uwagi
Wyrażenie przekazane jako argument do VAR może zawierać inną deklarację VAR.
Podczas odwoływania się do zmiennej:
- Miary nie mogą odwoływać się do zmiennych zdefiniowanych poza wyrażeniem measure, ale mogą odwoływać się do zmiennych zakresu funkcjonalnego zdefiniowanych w wyrażeniu.
- Zmienne mogą odwoływać się do miar.
- Zmienne mogą odwoływać się do wcześniej zdefiniowanych zmiennych.
- Nie można odwoływać się do kolumn w zmiennych tabeli za pomocą składni TableName[ColumnName].
Aby uzyskać najlepsze rozwiązania dotyczące używania VAR, zobacz Używanie zmiennych w celu ulepszenia formuł DAX.
Aby dowiedzieć się więcej o sposobie użycia VAR w zapytaniu DAX, zobacz DAX zapytania.
Przykład
Aby calculate procent year-over-year wzrostu bez użycia zmiennej, można utworzyć trzy oddzielne miary. Ta firstmeasure oblicza Sum kwoty sprzedaży:
Sum of SalesAmount = SUM(SalesTable[SalesAmount])
second measure oblicza kwotę sprzedaży dla previousyear:
SalesAmount PreviousYear =
CALCULATE([Sum of SalesAmount],
SAMEPERIODLASTYEAR(Calendar[Date])
)
Następnie możesz utworzyć trzecią measure, która łączy dwie pozostałe miary, aby calculate procent wzrostu. Zwróć uwagę, że Summeasure SalesAmount jest używana w dwóch miejscach; first ustalić, if istnieje sprzedaż, a następnie ponownie, aby calculate procent.
Sum of SalesAmount YoY%: =
IF([Sum of SalesAmount] ,
DIVIDE(([Sum of SalesAmount] – [SalesAmount PreviousYear]), [Sum of SalesAmount])
)
Używając zmiennej, można utworzyć jeden measure, który oblicza ten sam wynik:
YoY% =
VAR Sales =
SUM(SalesTable[SalesAmount])
VAR SalesLastYear =
CALCULATE ( SUM ( SalesTable[SalesAmount] ), SAMEPERIODLASTYEAR ( 'Calendar'[Date] ) )
return if(Sales, DIVIDE(Sales – SalesLastYear, Sales))
Używając zmiennej, można uzyskać ten sam wynik, ale w bardziej czytelny sposób. And, ponieważ wynik wyrażenia jest przechowywany w zmiennej, wydajność measuremoże zostać znacznie ulepszona, ponieważ nie musi być ponownie obliczana dla każdego time używanego.