Händelser
31 mars 23 - 2 apr. 23
Det ultimata Community-ledda evenemanget för Microsoft Fabric, Power BI, SQL och AI. 31 mars till 2 april 2025.
Anmäl dig i dagDen här webbläsaren stöds inte längre.
Uppgradera till Microsoft Edge och dra nytta av de senaste funktionerna och säkerhetsuppdateringarna, samt teknisk support.
Språket Data Analysis Expression (DAX) använder operatorer för att skapa uttryck som jämför values, utför aritmetiska beräkningar or arbeta med strängar.
Det finns fyra olika typer av beräkningsoperatorer: aritmetik, jämförelse, textsammanfogning and logiska.
För att utföra grundläggande matematiska operationer som addition, subtraktion, or multiplikation; kombinera tal; and ger numeriska resultat använder du följande aritmetiska operatorer.
Aritmetikoperator | Betydelse | Exempel |
---|---|---|
+ (plus sign) |
Addition | 3+3 |
- (minus sign) |
Subtraktion orsign | 3-1-1 |
* (asterisk) |
Multiplikation | 3*3 |
/ (snedstreck) |
Division | 3/3 |
^ (caret) |
Exponentiering | 16^4 |
Anteckning
Plus-sign kan fungera både som en binär operatorand som en unär operator. En binär operator kräver tal på båda sidor av operatorn and utför addition. När du använder values i en DAX formel på båda sidor av den binära operatorn försöker DAX omvandla values till numeriska datatyper if de redan är not tal. Däremot kan den unary operatorn tillämpas på alla typer av argument. Plussymbolen påverkar typen not medan or,valueochand ignoreras helt enkelt, medan minusoperatorn skapar en negativ valueoch if tillämpas på ett numeriskt value.
Du kan jämföra två values med följande operatorer. När två values jämförs med dessa operatorer blir resultatet en logisk value, antingen TRUE
orFALSE
.
Jämförelseoperator | Betydelse | Exempel |
---|---|---|
= |
Lika med | [Region] = "USA" |
== |
Strikt lika med | [Region] == "USA" |
> |
Större än | [Sales Date] > "Jan 2009" |
< |
Mindre än | [Sales Date] < "Jan 1 2009" |
>= |
Större än or lika med | [Belopp] >= 20000 |
<= |
Mindre än or lika med | [Belopp] <= 100 |
<> |
Not lika med | [Region] <> "USA" |
All jämförelseoperatorer except == behandla BLANK som lika med nummer 0, tom sträng "", DATE(1899, 12, 30), orFALSE
. Därför blir [Kolumn] = 0 true när value av [Kolumn] är antingen 0 orBLANK. [Kolumn] == 0 är däremot bara true när value för [Kolumn] är 0.
Använd et-et (&
) för att ansluta, orconcatenate, två or fler textsträngar för att skapa en enda textdel.
Textoperator | Betydelse | Exempel |
---|---|---|
& (et-tecken) |
Kopplar, or konkatenerar, två values för att skapa en kontinuerlig text value | [Region] & ", " & [City] |
Använd logiska operatorer (&&
) and (||
) för att kombinera uttryck för att skapa ett enda resultat.
Textoperator | Betydelse | Exempel |
---|---|---|
&& (dubbla et-tecken) |
Skapar ett AND villkor mellan två uttryck som var och en har ett booleskt resultat.
If returnerar båda uttrycken TRUE , kombinationen av uttrycken returnerar också TRUE ; annars returnerar kombinationen FALSE . |
([Region] = "France") && ([BikeBuyer] = "yes")) |
|| (dubbelrörssymbol) |
Skapar ett OR villkor mellan två logiska uttryck.
If båda uttrycken returnerar TRUE blir resultatet TRUE ; endast när båda uttrycken är FALSE är resultatet FALSE . |
(([Region] = "France") || ([BikeBuyer] = "yes")) |
IN |
Skapar ett logiskt OR villkor mellan varje rad som jämförs med en tabell. Obs! Tabellkonstruktorns syntax använder klammerparenteser. | 'Product'[Color] IN { "Red", "Blue", "Black" } |
I vissa fall kan den ordning i vilken beräkningen utförs påverka Return value; Därför är det viktigt att förstå hur ordningen bestäms and hur du kan ändra ordningen för att få önskat resultat.
Ett uttryck utvärderar operatorerna andvalues i en viss ordning. All uttryck börjar alltid med lika med-tecknet sign (=). Det lika med sign visar att de efterföljande tecknen utgör ett uttryck.
Efter likhetstecken sign är de element som ska beräknas (operanderna), som avgränsas med beräkningsoperatorer. Uttryck läses alltid från left till right, men den ordning i vilken elementen grupperas kan styras i viss utsträckning med hjälp av parenteser.
If du kombinerar flera operatorer i en enda formel sorteras åtgärderna enligt följande tabell. If operatorerna har samma prioritet valuesorteras de från left till right. Till exempel if ett uttryck contains både en multiplikationsoperator och and division, utvärderas i den ordning de visas i uttrycket, från left till right.
Operatör | Beskrivning |
---|---|
^ |
Exponentiering |
– |
Sign (till exempel –1) |
* and / |
Multiplikation and division |
+ and – |
Addition and subtraktion |
& |
Ansluter två textsträngar (sammanlänkning) |
=,==,<,>,<=,>=,<>,IN |
Jämförelse |
NOT |
NOT (unär operator) |
Om du vill ändra utvärderingsordningen bör du sätta den del av formeln som måste beräknas inom parenteser first. Följande formel genererar till exempel 11 eftersom multiplikation beräknas före addition. Formeln multiplicerar 2 med 3, and lägger sedan till 5 i resultatet.
=5+2*3
Däremot if du använder parenteser för att ändra syntaxen ändras ordningen så att 5 and 2 läggs ihop, and resultatet multiplicerat med 3 för att skapa 21.
=(5+2)*3
I följande exempel tvingar parenteserna runt den first delen av formeln beräkningen att evaluate uttrycket (3 + 0.25)
firstand och sedan divide resultatet av uttryckets resultat (3 - 0.25)
.
=(3 + 0.25)/(3 - 0.25)
I följande exempel tillämpas exponenteringsoperatorn first, enligt prioritetsreglerna för operatorer, and sedan tillämpas sign operatorn. Resultatet för det här uttrycket är -4.
=-2^2
För att säkerställa att sign-operatorn tillämpas på den numeriska valuefirstkan du använda parenteser för att styra operatorer, som du ser i följande exempel. Resultatet för det här uttrycket är 4.
= (-2)^2
DAX hanterar enkelt and och jämför olika datatyper, ungefär som Microsoft Excel. Den underliggande beräkningsmotorn baseras dock på SQL Server Analysis Services and tillhandahåller ytterligare avancerade funktioner i ett relationsdatalager, inklusive mer omfattande stöd för dateandtime typer. I vissa fall kan därför resultatet av beräkningar or funktionsbeteendet not vara detsamma som i Excel. Dessutom stöder DAX fler datatyper än excel. I det här avsnittet beskrivs de viktigaste skillnaderna.
I allmänhet bör de två operanderna på leftandright sidor av alla operatorer vara samma datatyp. Men if datatyperna skiljer sig. DAX kommer att convert dem till en gemensam datatyp för att tillämpa operatorn i vissa fall.
Anta till exempel att du har två tal som du vill kombinera. En siffra är resultatet av en formel, såsom =[Price] * .20
, and, och resultatet kan innehålla många decimaler. Det andra talet är ett heltal som har angetts som en sträng value.
I det här fallet convertDAX båda talen till verkliga tal i ett numeriskt format, med hjälp av den största numeriska format som kan lagra båda typerna av tal. Sedan tillämpar DAX multiplikationen.
Beroende på kombinationen av datatyp kan typtvång not tillämpas för jämförelseåtgärder. En fullständig lista över datatyper som stöds av DAXfinns i Datatyper som stöds i tabellmodellerandDatatyper i Power BI Desktop.
Heltal, realnummer, Currency, Date/timeandBlank betraktas som numeriska i jämförelsesyfte. Blank utvärderas till noll när du utför en jämförelse. Följande kombinationer av datatyp stöds för jämförelseåtgärder.
Left Sidodatatyp | Right Sidodatatyp |
---|---|
Numerisk | Numerisk |
Boolesk | Boolesk |
Sträng | Sträng |
Andra jämförelser av blandade datatyper returnerar en error. En formel som ="1" > 0 returnerar till exempel en error som anger att DAX jämförelseåtgärder not stöd för att jämföra values av typen Text med values av typen Heltal.
Datatyper som används i DAX | Datatyper som används i Excel |
---|---|
Tal (I8, R8) | Tal (R8) |
Sträng | Sträng |
Boolesk | Boolesk |
DatumTid | Variant |
Currency | Currency |
Prioritetsordningen för åtgärder i DAX formler är i princip densamma som den som används av Microsoft Excel, men vissa Excel-operatorer stöds not, till exempel procent. Dessutom stöds intervall not.
När du kopierar and och klistrar in formler från Excel bör du därför granska formeln noggrant, eftersom vissa operatorer och or element i formler kan not vara giltiga. När det råder tvivel om i vilken ordning åtgärder utförs rekommenderar vi att du använder parenteser för att styra ordningen på åtgärder and ta bort eventuella tvetydigheter om resultatet.
Händelser
31 mars 23 - 2 apr. 23
Det ultimata Community-ledda evenemanget för Microsoft Fabric, Power BI, SQL och AI. 31 mars till 2 april 2025.
Anmäl dig i dag