VARIANS
Lagrer resultatet av et uttrykk som en navngitt variabel, som deretter kan sendes som et argument til andre måluttrykk. Når resulterende verdier er beregnet for et variabeluttrykk, endres ikke disse verdiene, selv om variabelen refereres til i et annet uttrykk.
Syntaks
VAR <name> = <expression>
Parametere
Term | Definisjon |
---|---|
name | Navnet på variabelen (identifikator). Skilletegn støttes ikke. VarName eller [varName] vil for eksempel resultere i en feil. Støttet tegnsett: a-z, A-Z, 0-9. 0-9 er ikke gyldige som første tegn. __ (dobbelt understrekingstegn) er tillatt som et prefiks til identifikatornavnet. Ingen andre spesialtegn støttes. Reserverte nøkkelord er ikke tillatt. Navn på eksisterende tabeller er ikke tillatt. Tomme mellomrom er ikke tillatt. |
Uttrykk | Et DAX-uttrykk som returnerer en skalar- eller tabellverdi. |
Returverdi
En navngitt variabel som inneholder resultatet av uttrykksargumentet.
Merknader
Et uttrykk som sendes som et argument til VARIANS, kan inneholde en annen VARIANS-deklarasjon.
Når du refererer til en variabel:
- Mål kan ikke referere til variabler som er definert utenfor måluttrykket, men kan referere til funksjonelle omfangsvariabler som er definert i uttrykket.
- Variabler kan referere til mål.
- Variabler kan referere til tidligere definerte variabler.
- Kolonner i tabellvariabler kan ikke refereres til via TableName[ColumnName]-syntaks.
Hvis du vil ha anbefalte fremgangsmåter når du bruker VARIANS, kan du se Bruke variabler til å forbedre DAX-formlene.
Hvis du vil lære mer om hvordan VARIANS brukes i en DAX-spørring, kan du se DAX-spørringer.
Eksempel
Hvis du vil beregne en prosentdel av år-over-år-vekst uten å bruke en variabel, kan du opprette tre separate mål. Dette første målet beregner Summen av salgsbeløp:
Sum of SalesAmount = SUM(SalesTable[SalesAmount])
Et annet mål beregner salgsbeløpet for forrige år:
SalesAmount PreviousYear =
CALCULATE([Sum of SalesAmount],
SAMEPERIODLASTYEAR(Calendar[Date])
)
Deretter kan du opprette et tredje mål som kombinerer de to andre målene for å beregne en vekstprosent. Legg merke til at Total of SalesAmount-målet brukes på to steder. først for å finne ut om det er et salg, så på nytt for å beregne en prosentdel.
Sum of SalesAmount YoY%: =
IF([Sum of SalesAmount] ,
DIVIDE(([Sum of SalesAmount] – [SalesAmount PreviousYear]), [Sum of SalesAmount])
)
Ved hjelp av en variabel kan du opprette ett enkelt mål som beregner samme resultat:
YoY% =
VAR Sales =
SUM(SalesTable[SalesAmount])
VAR SalesLastYear =
CALCULATE ( SUM ( SalesTable[SalesAmount] ), SAMEPERIODLASTYEAR ( 'Calendar'[Date] ) )
return if(Sales, DIVIDE(Sales – SalesLastYear, Sales))
Ved hjelp av en variabel kan du få samme resultat, men på en mer lesbar måte. Og fordi resultatet av uttrykket lagres i variabelen, kan målets ytelse forbedres betraktelig fordi det ikke trenger å beregnes på nytt hver gang det brukes.