Lezen in het Engels

Delen via


operators voor DAX

De taal data analysis expression (DAX) maakt gebruik van operators om expressies te maken die valuesvergelijken, rekenkundige berekeningen uitvoeren or werken met tekenreeksen.

Typen van operators

Er zijn vier verschillende typen berekeningsoperatoren: rekenkundig, vergelijking, tekstsamenvoeging, and logisch.

Rekenkundige operatoren

Eenvoudige wiskundige bewerkingen uitvoeren, zoals optellen, aftrekken, or vermenigvuldiging; getallen combineren; and numerieke resultaten produceren, gebruikt u de volgende rekenkundige operatoren.

Rekenkundige operator Betekenis Voorbeeld
+ (plus sign) Toevoeging 3+3
- (min sign) Aftrekken orsign 3-1-1
* (sterretje) Vermenigvuldiging 3*3
/ (schuine streep) Divisie 3/3
^ (caret) Exponentiatie 16^4

Notitie

De plus sign kan zowel als een binaire operator and als een unaire operator functioneren. Een binaire operator vereist getallen aan beide zijden van de operator. and voert optellen uit. Wanneer u values in een DAX formule aan beide zijden van de binaire operator gebruikt, probeert DAX de values te casten naar numerieke gegevenstypen if ze al getallen not. De unaire operator kan daarentegen worden toegepast op elk type argument. Het plusteken heeft not invloed op het type or.valueand wordt gewoon genegeerd, terwijl de min-operator een negatieve valuemaakt, if toegepast op een numerieke value.

Vergelijkingsoperatoren

U kunt twee values vergelijken met de volgende operators. Wanneer twee values worden vergeleken met behulp van deze operatoren, is het resultaat een logische value, ofwel TRUEorFALSE.

Vergelijkingsoperator Betekenis Voorbeeld
= Gelijk aan [Region] = "USA"
== Strikt gelijk aan [Region] == "USA"
> Groter dan [Verkoop Date] > "jan 2009"
< Kleiner dan [Verkoop Date] < "1 januari 2009"
>= Groter dan or gelijk aan [Bedrag] >= 20000
<= Kleiner dan of gelijk aan or [Bedrag] <= 100
<> Not gelijk aan [Regio] <> "VS"

All vergelijkingsoperatoren except == behandelen BLANK als gelijk aan getal 0, lege tekenreeks "", DATE(1899, 12, 30), orFALSE. Als gevolg hiervan zal [Kolom] = 0 true zijn als de value van [Kolom] 0 orBLANKis. [Kolom] == 0 is daarentegen alleen true wanneer de value van [Kolom] 0 is.

Tekstsamenvoegingsoperator

Gebruik het en-teken (&) om orconcatenatetwee andere or tekenreeksen samen te voegen tot één stuk tekst.

Tekstoperator Betekenis Voorbeeld
& (ampersand) Verbindt, or voegt twee values samen om één doorlopende tekst te produceren value [Region] & ", " & [City]

Logische operators

Gebruik logische operatoren (&&) and (||) om expressies te combineren om één resultaat te produceren.

Tekstoperator Betekenis Voorbeelden
&&(dubbele ampersand) Hiermee maakt u een AND voorwaarde tussen twee expressies die elk een Boole-resultaat hebben. If beide uitdrukkingen retourneren TRUE, retourneert de combinatie van de uitdrukkingen ook TRUE; anders retourneert de combinatie FALSE. ([Region] = "France") && ([BikeBuyer] = "yes"))
|| (symbool voor dubbele sluis) Hiermee maakt u een OR voorwaarde tussen twee logische expressies. If als een van beide uitdrukkingen TRUEretourneert, is het resultaat TRUE; alleen wanneer beide uitdrukkingen FALSE zijn, is het resultaat FALSE. (([Region] = "France") || ([BikeBuyer] = "yes"))
IN Hiermee maakt u een logische OR voorwaarde tussen elke rij die wordt vergeleken met een tabel. Opmerking: de syntaxis van de tabelconstructor maakt gebruik van accolades. 'Product'[Color] IN { "Red", "Blue", "Black" }

Operatoren and volgorde van prioriteit

In sommige gevallen kan de volgorde waarin de berekening wordt uitgevoerd van invloed zijn op de Return-value; Daarom is het belangrijk om te begrijpen hoe de order wordt bepaald and hoe u de volgorde kunt wijzigen om de gewenste resultaten te verkrijgen.

Berekeningsvolgorde

Een expressie evalueert de operators andvalues in een specifieke volgorde. All expressies beginnen altijd met een gelijk sign (=). Het gelijk sign geeft aan dat de volgende tekens een expressie vormen.

Na het gelijk sign zijn de elementen die moeten worden berekend (de operanden), gescheiden door berekeningsoperatoren. Expressies worden altijd gelezen van left tot right, maar de volgorde waarin de elementen zijn gegroepeerd, kan worden bepaald met haakjes.

Prioriteit van operator

If u verschillende operatoren in één formule combineert, worden de bewerkingen gerangschikt volgens de volgende tabel. If de operators dezelfde prioriteit hebben value, worden ze geordend van left tot right. Als u bijvoorbeeld een expressie ifcontains beide een operator voor vermenigvuldigen and delen, worden ze geëvalueerd in de volgorde waarin ze in de expressie worden weergegeven, van left tot right.

Bediener Beschrijving
^ Exponentiatie
Sign (zoals –1)
* and / Vermenigvuldiging and deling
+ and Optellen and aftrekken
& Verbindt twee tekenreeksen met tekst (samenvoeging)
=,==,<,>,<=,>=,<>,IN Vergelijking
NOT NOT (unaire operator)

Haakjes gebruiken om de berekeningsvolgorde te beheren

Als u de evaluatievolgorde wilt wijzigen, moet u haakjes plaatsen om dat gedeelte van de formule dat moet worden berekend first. De volgende formule produceert bijvoorbeeld 11 omdat vermenigvuldigen wordt berekend vóór optellen. De formule vermenigvuldigt 2 met 3, and voegt vervolgens 5 toe aan het resultaat.

=5+2*3  

Daarentegen if u haakjes gebruikt om de syntaxis te wijzigen, wordt de volgorde gewijzigd, zodat 5 and 2 worden opgeteld, and het resultaat vermenigvuldigd met 3 om 21 te produceren.

=(5+2)*3  

In het volgende voorbeeld dwingen de haakjes rond het first deel van de formule de berekening af om de expressie te evaluate(3 + 0.25)firstand vervolgens het resultaat divide door het resultaat van de expressie, (3 - 0.25).

=(3 + 0.25)/(3 - 0.25)  

In het volgende voorbeeld wordt de operator voor exponentiatie toegepast first, volgens de regels van prioriteit voor operators, and de operator sign wordt toegepast. Het resultaat voor deze expressie is -4.

=-2^2  

Als u ervoor wilt zorgen dat de operator sign wordt toegepast op de numerieke valuefirst, kunt u haakjes gebruiken om operatoren te beheren, zoals wordt weergegeven in het volgende voorbeeld. Het resultaat voor deze expressie is 4.

= (-2)^2  

Compatibiliteit

DAX eenvoudig and verschillende gegevenstypen vergelijkt, vergelijkbaar met Microsoft Excel. De onderliggende berekeningsengine is echter gebaseerd op SQL Server Analysis Services and biedt aanvullende geavanceerde functies van een relationeel gegevensarchief, waaronder uitgebreidere ondersteuning voor dateandtime typen. Daarom kunnen in sommige gevallen de resultaten van berekeningen or het gedrag van functies not hetzelfde zijn als in Excel. Bovendien ondersteunt DAX meer gegevenstypen dan Excel. In deze sectie worden de belangrijkste verschillen beschreven.

Gegevenstypen van operanden dwingen

Over het algemeen moeten de twee operanden aan de leftandright zijden van een operator hetzelfde gegevenstype zijn. Echter, if zijn de gegevenstypen verschillend, DAX zullen we ze convert naar een gemeenschappelijk gegevenstype om de operator in sommige gevallen toe te passen.

  1. Beide operanden worden geconverteerd naar het grootst mogelijke algemene gegevenstype.
  2. De operator wordt toegepast, if mogelijk.

Stel dat u twee getallen hebt die u wilt combineren. Eén getal resulteert in een formule, zoals =[Price] * .20, and het resultaat veel decimalen kan bevatten. Het andere getal is een geheel getal dat is opgegeven als een tekenreeks value.

In dit geval DAX beide getallen convert op reële getallen in een numerieke format, met behulp van de grootste numerieke format waarmee beide soorten getallen kunnen worden opgeslagen. Vervolgens past DAX de vermenigvuldiging toe.

Afhankelijk van de combinatie van het gegevenstype kan typecoercion not worden toegepast voor vergelijkingsbewerkingen. Zie Gegevenstypen die worden ondersteund in tabellaire modellenandGegevenstypen in Power BI Desktop-voor een volledige lijst met gegevenstypen die worden ondersteund door DAX.

Geheel getal, reëel getal, Currency, Date/timeandBlank worden beschouwd als numeriek voor vergelijkingsdoeleinden. Blank resulteert in nul bij het uitvoeren van een vergelijking. De volgende combinaties van gegevenstypen worden ondersteund voor vergelijkingsbewerkingen.

gegevenstype aan de zijkant van Left gegevenstype aan de zijkant van Right
Numeriek Numeriek
Booleaans Booleaans
Snaar Snaar

Andere vergelijkingen van gemengde gegevenstypen retourneren een error. Een formule zoals ="1" > 0 retourneert bijvoorbeeld een error waarin wordt aangegeven dat DAX vergelijkingsbewerkingen not ondersteuning bieden voor het vergelijken van values van het type Tekst met values van het type Geheel getal.

Gegevenstypen die worden gebruikt in DAX Gegevenstypen die worden gebruikt in Excel
Getallen (I8, R8) Getallen (R8)
Snaar Snaar
Booleaans Booleaans
Datum/tijd Variant
Currency Currency

Verschillen in prioriteitsvolgorde

De prioriteitsvolgorde van bewerkingen in DAX formules is in feite hetzelfde als die van Microsoft Excel, maar sommige Excel-operators worden not ondersteund, zoals percentage. Ook worden bereiken not ondersteund.

Wanneer u formules uit Excel kopieert and plakt, moet u de formule daarom zorgvuldig controleren, omdat sommige operatoren or elementen in de formules mogelijk geldig not zijn. Wanneer er twijfel is over de volgorde waarin bewerkingen worden uitgevoerd, is het raadzaam haakjes te gebruiken om de volgorde van bewerkingen te beheren and eventuele dubbelzinnigheid over het resultaat te verwijderen.

DAX syntaxis
DAX parameternaamgeving