DAX-operaattorit
Data Analysis Expression (DAX) -kieli käyttää operaattoreita luomaan lausekkeita, jotka vertaavat values, suorittavat aritmeettisia laskutoimituksia or toimivat merkkijonojen kanssa.
Operaattoreiden tyypit
Laskentaoperaattoreita on neljää eri tyyppiä: aritmeettinen, vertailu-, tekstin yhdistämis-, and looginen.
Aritmeettiset operaattorit
Voit suorittaa matemaattisia perustoimintoja, kuten yhteenlaskua, vähennyslaskua or kertolaskua. yhdistä numeroita; and tuottaa numeerisia tuloksia, käytä seuraavia aritmeettisia operaattoreita.
Aritmeettinen operaattori | Merkitys | Esimerkki |
---|---|---|
+ (plus sign) |
Yhteenlasku | 3+3 |
- (miinus sign) |
Vähennyslaskun orsign | 3-1-1 |
* (tähti) |
Kertolasku | 3*3 |
/ (vinoviiva) |
Jakolasku | 3/3 |
^ (varoen) |
Potenssiin korotus | 16^4 |
Muistiinpano
Plus-sign voi toimia sekä binaarioperaattorina,and unaarioperaattorina . Binaarioperaattori edellyttää lukuja operaattorin molemmin puolin, and suorittaa yhteenlaskun. Kun käytät valuesDAX -kaavassa binaarioperaattorin molemmin puolin, DAX yrittää muuntaa values numeerisiin tietotyyppeihin, if ne ovat jo lukuja not. Unaarioperaattoria voidaan sen sijaan käyttää missä tahansa argumenttityypissä. Plusmerkki vaikuttaa not tyyppiin, orvalueand yksinkertaisesti ohitetaan, kun taas miinusoperaattori luo negatiivisen value, if käyttää numeerisissa value.
Vertailuoperaattorit
Voit verrata kahta values seuraaviin operaattoreihin. Kun kahta values verrataan käyttämällä näitä operaattoreita, tuloksena on looginen value, jompikumpi TRUE
orFALSE
.
Vertailuoperaattori | Merkitys | Esimerkki |
---|---|---|
= |
Yhtä suuri kuin | [Region] = "USA" |
== |
Tarkalleen yhtä suuri kuin | [Region] == "USA" |
> |
Suurempi kuin | [Sales Date] > "tammikuu 2009" |
< |
Alle | [Sales Date] < "1.1.2009" |
>= |
Suurempi kuin or yhtä suuri kuin | [Summa] >= 20000 |
<= |
Pienempi kuin or yhtä suuri kuin | [Amount] <= 100 |
<> |
Not yhtä suuri kuin | [Region] <> "USA" |
All vertailuoperaattoreiden except == käsittelevät BLANK lukuna 0, tyhjä merkkijono "", DATE(1899, 12, 30), orFALSE
. Tämän seurauksena [Column] = 0 on true, kun kohteen [Column] value on joko 0 orBLANK. Sen sijaan [Column] == 0 on true vain, kun kohteen [Column] value on 0.
Tekstin yhdistämisoperaattori
Et-merkin (&
) avulla voit tuottaa yhden tekstiosan yhdistämään, orconcatenate, kahteen or enemmän tekstimerkkijonoja.
Tekstioperaattori | Merkitys | Esimerkki |
---|---|---|
& (et-merkki) |
Yhdistää, or yhdistää kaksi values yhden jatkuvan tekstin value | [Region] & ", " & [City] |
Loogiset operaattorit
Käytä loogisia operaattoreita (&&
) and (||
) lausekkeiden yhdistämiseen yhden tuloksen tuottamiseksi.
Tekstioperaattori | Merkitys | Esimerkkejä |
---|---|---|
&& (kaksinkertainen et-merkki) |
Luo AND ehdon kahden lausekkeen välille, joissa kummassakin on tuloksena totuusarvo.
If molemmat lausekkeet palauttavat TRUE , lausekkeiden yhdistelmä palauttaa myös TRUE . muussa tapauksessa yhdistelmä palauttaa FALSE . |
([Region] = "France") && ([BikeBuyer] = "yes")) |
|| (kaksinkertainen putkisymboli) |
Luo OR ehdon kahden loogisen lausekkeen välille.
If lauseke palauttaa TRUE , tulos on TRUE . vain silloin, kun molemmat lausekkeet on FALSE on tulos FALSE . |
(([Region] = "France") || ([BikeBuyer] = "yes")) |
IN |
Luo loogisen OR ehdon kunkin rivin välille, jota verrataan taulukkoon. Huomautus: taulukkokonstruktorin syntaksissa käytetään kaarisulkeita. | 'Product'[Color] IN { "Red", "Blue", "Black" } |
Operaattorit and käsittelyjärjestys
Joissakin tapauksissa laskutoimituksen käsittelyjärjestys voi vaikuttaa Palautus-value; Siksi on tärkeää ymmärtää, miten järjestys määritetään and miten voit muuttaa järjestystä halutun tuloksen saamiseksi.
Laskentajärjestys
Lauseke arvioi andvalues operaattorit tietyssä järjestyksessä. All lausekkeet alkavat aina yhtä sign (=). Yhtä suuri sign ilmaisee, että sitä seuraavat merkit muodostavat lausekkeen.
Yhtä sign jälkeen ovat lasketut elementit (operandit), jotka erotetaan toisistaan laskentaoperaattoreilla. Lausekkeet luetaan aina leftright, mutta elementtien ryhmittelyjärjestystä voidaan hallita jonkin verran käyttämällä sulkeita.
Operaattorin käsittelyjärjestys
If yhdistät useita operaattoreita yhteen kaavaan, toiminnot järjestetään seuraavan taulukon mukaisesti. If operaattoreilla on sama tärkeysjärjestys value, ne järjestetään leftright. Esimerkiksi if lauseketta, contains sekä kertolaskuoperaattorin and jakolaskuoperaattorin, ne arvioidaan siinä järjestyksessä, jossa ne näkyvät lausekkeessa leftright.
Operaattori | Kuvaus |
---|---|
^ |
Potenssiin korotus |
– |
Sign (kuten –1) |
* and / |
Kertolaskun and jakaminen |
+ and – |
Yhteenlasku and vähennyslasku |
& |
Yhdistää kaksi tekstimerkkijonoa (yhdistäminen) |
=,==,<,>,<=,>=,<>,IN |
Vertailu |
NOT |
NOT (unaarioperaattori) |
Laskentajärjestyksen hallinta sulkeiden avulla
Jos haluat muuttaa arviointijärjestystä, sisällytä sulkeisiin se kaavan osa, joka on laskettava first. Esimerkiksi seuraavan kaavan arvo on 11, koska kertolasku lasketaan ennen yhteenlaskua. Kaava kertoo 2 luvulla 3, and lisää sitten tulokseen 5.
=5+2*3
sen sijaan if käytät sulkeita syntaksin muuttamiseen, järjestystä muutetaan siten, että 5 and 2 lasketaan yhteen, and tulos kerrottuna luvulla 3, jolloin tulos on 21.
=(5+2)*3
Seuraavassa esimerkissä kaavan first osan ympärillä olevat sulkeet pakottavat laskutoimituksen evaluate lausekkeen (3 + 0.25)
firstand sitten divide tuloksen lausekkeen tuloksella (3 - 0.25)
.
=(3 + 0.25)/(3 - 0.25)
Seuraavassa esimerkissä potenssiin eksponentiointioperaattoria käytetään firstoperaattoreiden käsittelyjärjestyssääntöjen mukaisesti, and sitten käytetään sign-operaattoria. Tämän lausekkeen tulos on -4.
=-2^2
Jos haluat varmistaa, että sign-operaattoria käytetään numeerisissa valuefirst, voit käyttää sulkeita ohjaamaan operaattoreita seuraavassa esimerkissä esitetyllä tavalla. Tämän lausekkeen tulos on 4.
= (-2)^2
Yhteensopivuus
DAX käsittelee and helposti eri tietotyyppien vertailua Microsoft Excelin tapaan. Pohjana oleva laskentamoduuli perustuu kuitenkin SQL Server Analysis Services -and tarjoaa relaatiotietosäilön lisäominaisuuksia, mukaan lukien monipuolisemman tuen dateandtime tyypeille. Joissakin tapauksissa funktioiden toiminnan or laskutoimitusten tulokset saattavat not olla samat kuin Excelissä. lisäksi DAX tukee useampia tietotyyppejä kuin Excel. Tässä osiossa kuvataan tärkeimmät erot.
Operandien tietotyyppien pakottaminen
Yleensä operaattorin leftandright puolella olevan kahden operandin on oltava samaa tietotyyppiä. kuitenkin if tietotyypit ovat erilaiset, DAXconvert ne joissain tapauksissa yleiseen tietotyyppiin operaattorin käyttämistä varten:
- Molemmat operandit muunnetaan suurimmaksi mahdolliseksi yleiseksi tietotyypiksi.
- Operaattoria käytetään, if mahdollista.
Oletetaan esimerkiksi, että sinulla on kaksi lukua, jotka haluat yhdistää. Yksi luku, joka on esimerkiksi kaavan, kuten =[Price] * .20
, tulos, and tulos voi sisältää useita desimaaleja. Toinen luku on kokonaisluku, joka on annettu merkkijonona value.
Tässä tapauksessa DAXconvert molemmat luvut reaaliluvuksi numeerisissa formatkäyttämällä suurinta numeerista format, joka voi tallentaa kummankin lukutyypin. Tämän jälkeen DAX käyttää kertolaskua.
Tietojen ja tyypin yhdistelmästä riippuen tyypin pakottamista voidaan not käyttää vertailuoperaatioissa. Täydellinen luettelo DAXtukemista tietotyypeistä on artikkelissa taulukkomallien tukemat tietotyypitandtietotyypit Power BI Desktop -.
Kokonaisluku-, Reaaliluku-, Currency-, Date/timeandBlank pidetään numeerisina vertailutarkoituksessa. Blank saa arvon nolla vertailua suoritettaessa. Seuraavia tietotyyppiyhdistelmiä tuetaan vertailuoperaatioissa.
Left-puolen tietotyyppi | Right-puolen tietotyyppi |
---|---|
Numeerinen | Numeerinen |
Boolean | Boolean |
Merkkijono | Merkkijono |
Muut tietojen ja tyypin yhdistelmät palauttavat error. Esimerkiksi kaava ="1" > 0 palauttaa error todeten, että DAX vertailutoiminnot not tue tyypin Teksti values vertaamista tyypin Kokonaislukuvalues kanssa.
DAX käytetyt tietotyypit | Excelissä käytetyt tietotyypit |
---|---|
Luvut (I8, R8) | Luvut (R8) |
Merkkijono | Merkkijono |
Boolean | Boolean |
Päivämäärä ja aika | Muunnos |
Currency | Currency |
Erot käsittelyjärjestyksessä
Toimintojen käsittelyjärjestys DAX kaavoissa on periaatteessa sama kuin Microsoft Excelissä, mutta joitain Excel-operaattoreita not tueta, kuten prosenttia. Lisäksi alueita tuetaan not.
Siksi aina kopioidessasi and liittäessäsi kaavoja Excelistä muista tarkistaa kaava huolellisesti, koska jotkin operaattorit or kaavojen elementtejä not kelvollisia. Jos toimintojen käsittelyjärjestys ei ole täysin epäselvä, on suositeltavaa käyttää sulkeita, jotta voit hallita toimintojen järjestystä and jotta tuloksessa ei ole epäselvyyksiä.