VAR

Slaat het resultaat van een expressie op als een benoemde variabele, die u vervolgens als argument kunt doorgeven aan andere metingexpressies. Nadat DAX de waarden voor een variabele-expressie zijn berekend, worden deze waarden niet gewijzigd, zelfs niet als u naar de variabele in een andere expressie verwijst.

Syntaxis

VAR <name> = <expression>

Parameterwaarden

Termijn Definitie
name De naam van de variabele (id).
Scheidingstekens worden niet ondersteund. Bijvoorbeeld: 'varName' of [varName] resulteert in een fout.
Ondersteunde tekenset: a-z, A-Z, 0-9.
0-9 zijn niet geldig als eerste teken.
__ (dubbel onderstrepingsteken) is toegestaan als voorvoegsel voor de id-naam.
Er worden geen andere speciale tekens ondersteund.
Gereserveerde trefwoorden zijn niet toegestaan.
Namen van bestaande tabellen zijn niet toegestaan.
Lege ruimten zijn niet toegestaan.
expression Een DAX expressie die een scalaire waarde of tabelwaarde retourneert.

Retourwaarde

Een benoemde variabele die het resultaat van het expressieargument bevat.

Opmerkingen

  • Een expressie die als argument aan VAR wordt doorgegeven, kan een andere VAR declaratie bevatten.

  • Wanneer u naar een variabele verwijst:

    • Metingen kunnen niet verwijzen naar variabelen die buiten de metingexpressie zijn gedefinieerd, maar kunnen verwijzen naar functionele bereikvariabelen die zijn gedefinieerd in de expressie.
    • Variabelen kunnen verwijzen naar metingen.
    • Variabelen kunnen verwijzen naar eerder gedefinieerde variabelen.
    • U kunt niet verwijzen naar kolommen in tabelvariabelen met behulp van de syntaxis TableName[ColumnName].
  • Zie VARvoor aanbevolen procedures bij het gebruik van DAX.

  • Zie VARvoor meer informatie over hoe DAX wordt gebruikt in een DAX Query.

Voorbeeld

Voorbeelden in dit artikel kunnen worden gebruikt met het voorbeeldmodel Adventure Works DW 2020 Power BI Desktop. Zie DAX voorbeeldmodelom het model op te halen.

Als u een percentage van de groei per jaar wilt berekenen zonder een variabele te gebruiken, kunt u drie afzonderlijke metingen maken. Met deze eerste meting wordt de som van de verkoophoeveelheid berekend:

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

Met een tweede meting wordt het verkoopbedrag voor het vorige jaar berekend:

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

Vervolgens kunt u een derde meting maken die de andere twee metingen combineert om een groeipercentage te berekenen. U ziet dat de som van SalesAmount op twee plaatsen wordt gebruikt: eerst om te controleren of er een verkoop bestaat en vervolgens opnieuw om een percentage te berekenen.

Sum of SalesAmount YoY%: =
IF (
    [Sum of Sales Amount] && [Sales Amount PreviousYear],
    DIVIDE (
        ( [Sum of Sales Amount] - [Sales Amount PreviousYear] ),
        [Sales Amount PreviousYear]
    )
)

Met behulp van een variabele kunt u één meting maken waarmee hetzelfde resultaat wordt berekend:

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 ) )

Door een variabele te gebruiken, kunt u hetzelfde resultaat op een beter leesbare manier krijgen. En omdat het resultaat van de expressie wordt opgeslagen in de variabele, worden de prestaties van de meting aanzienlijk verbeterd omdat DAX deze niet telkens opnieuw wordt berekend wanneer deze wordt gebruikt.