operátorov jazyka DAX,
Jazyk Data Analysis Expression (DAX) používa operátory na vytvorenie výrazov, ktoré porovnávajú hodnoty, vykonávajú aritmetické výpočty alebo pracujú s reťazcami.
Typy operátorov
Existujú štyri rôzne typy výpočtových operátorov: aritmetické, porovnávacie, spájanie reťazcov a logické.
Aritmetické operátory
na vykonávanie základných matematických operácií, ako je sčítanie, odčítanie alebo násobenie; kombinovať čísla; a vyprodukujte číselné výsledky, použite nasledujúce aritmetické operátory.
Aritmetický operátor | Zmysle | Príklad |
---|---|---|
+ (znamienko plus) | Sčítanie | 3+3 |
– (znamienko mínus) | Odčítanie alebo znamienko | 3–1–1 |
* (hviezdička) | Násobenie | 3*3 |
/ (lomka) | Divízia | 3/3 |
^ (vsuvka) | Umocnenie | 16^4 |
Poznámka
Znamienko plus môže fungovať ako binárny operátor aj ako unárny operátor. Binárny operátor vyžaduje čísla na oboch stranách operátora a vykoná sčítanie. Keď použijete hodnoty vo vzorci jazyka DAX na oboch stranách binárneho operátora, jazyk DAX sa pokúsi odovzdať hodnoty do číselných typov údajov, ak už nie sú číslami. Na rozdiel od toho možno unárny operátor použiť na akýkoľvek typ argumentu. Symbol plus nemá vplyv na typ alebo hodnotu a jednoducho sa ignoruje, zatiaľ čo operátor mínus vytvorí zápornú hodnotu, ak sa použije na číselnú hodnotu.
Operátory porovnávania
Pomocou nasledujúcich operátorov môžete porovnať dve hodnoty. Keď sa porovnávajú dve hodnoty pomocou týchto operátorov, výsledkom je logická hodnota TRUE alebo FALSE.
Operátor porovnávania | Zmysle | Príklad |
---|---|---|
= | Rovná sa | [Oblasť] = "USA" |
== | Striktne sa rovná | [Oblasť] == "USA" |
> | Väčšie než | [Dátum predaja] > "Jan 2009" |
< | Menšie než | [Dátum predaja] < "1. jan 2009" |
>= | Väčšie než alebo rovná sa | [Suma] >= 20000 |
<= | Menšie než alebo rovná sa | [Suma] <= 100 |
<> | Nerovná sa | [Oblasť] <> "USA" |
Všetky operátory porovnania s výnimkou == považujú hodnotu BLANK za rovnú 0, prázdny reťazec "", DATE(1899, 12, 30) alebo hodnotu FALSE. Výsledkom je, že [Stĺpec] = 0 bude true, keď hodnota [Stĺpec] je 0 alebo BLANK. Na rozdiel od toho [Stĺpec] == 0 je true len vtedy, keď hodnota [Stĺpec] je 0.
Operátor reťazenia textu
Pomocou znaku (&) môžete spojiť alebo zreťaziť dva alebo viacero textových reťazcov a vytvoriť tak jeden kus textu.
Operátor textu | Zmysle | Príklad |
---|---|---|
& ampersand) | Pripojenie, alebo zreťazí, dve hodnoty na vytvorenie jednej spojitej textovej hodnoty | [Oblasť] & ", " & [Mesto] |
Logické operátory
Pomocou logických operátorov (&&) a (||) môžete kombinovať výrazy a vytvoriť tak jeden výsledok.
Operátor textu | Zmysle | Príklady |
---|---|---|
&& (dvojitý znak) | Vytvorí podmienku AND medzi dvomi výrazmi, ktoré majú každý z nich booleovský výsledok. Ak oba výrazy vrátia hodnotu TRUE, kombinácia výrazov tiež vráti hodnotu TRUE. V opačnom prípade kombinácia vráti hodnotu FALSE. | ([Oblasť] = "Francúzsko") && ([NákupecBicyklov] = "áno")) |
|| (symbol dvojitej zvislej čiary) | Vytvorí podmienku OR medzi dvomi logickými výrazmi. Ak niektorý z výrazov vráti hodnotu TRUE, výsledok je TRUE; Iba ak sú obidva výrazy FALSE, je výsledkom FALSE. | (([Oblasť] = "Francúzsko") || ([NákupecBicyklov] = "áno")) |
IN | Vytvorí logickú podmienku OR medzi jednotlivými riadkami, ktoré sa porovnávajú s tabuľkou. Poznámka: syntax konštruktora tabuľky používa zložené zátvorky. | 'Product'[Farba] IN { "Červená", "Modrá", "Čierna" } |
Operátory a poradie priority
V niektorých prípadoch môže poradie, v ktorom sa vykonáva výpočet, ovplyvniť vrátenú hodnotu; Preto je dôležité pochopiť, ako sa určuje poradie a ako môžete zmeniť poradie, aby ste dosiahli požadované výsledky.
Poradie výpočtu
Výraz vyhodnotí operátory a hodnoty v konkrétnom poradí. Všetky výrazy vždy začínajú znamienkom rovnosti (=). Znamienko rovnosti označuje, že nasledujúce znaky predstavujú výraz.
Po znamienku rovnosti sú prvky, ktoré sa majú vypočítať (operandy), ktoré sú oddelené výpočtovými operátormi. Výrazy sa vždy čítajú zľava doprava, ale poradie, v ktorom sú prvky zoskupené, možno do určitej miery ovládať pomocou zátvoriek.
Poradie operátorov podľa priority
Ak skombinujete niekoľko operátorov v jednom vzorci, operácie sa zoradia podľa nasledujúcej tabuľky. Ak majú operátory rovnakú hodnotu priority, zoradia sa zľava doprava. Ak výraz napríklad obsahuje operátor násobenia aj delenia, vyhodnotia sa v poradí, v akom sú uvedené vo výraze, zľava doprava.
Operátor | Description |
---|---|
^ | Umocnenie |
– | Znamienko (napríklad v –1) |
*A/ | Násobenie a delenie |
+ a – | Sčítanie a odčítanie |
& | Pripojenie dva reťazce textu (zreťazenie) |
=, ==,<,><=,> =,<> ,IN | Porovnanie |
NIE | NOT (unárny operátor) |
Použitie zátvoriek na kontrolu poradia výpočtu
Ak chcete zmeniť poradie vyhodnocovania, musíte do zátvoriek uzavrieť tú časť vzorca, ktorá musí vypočítať ako prvá. Nasledujúci vzorec napríklad vytvorí hodnotu 11, pretože násobenie sa vypočíta pred sčítaním. Vzorec vynásobí 2 číslom 3 a potom k výsledku pripočíta 5.
=5+2*3
Naopak, ak používate zátvorky na zmenu syntaxe, poradie sa zmení tak, aby sa 5 a 2 spočítali a výsledok sa vynásobí 3, čím vytvoríte 21.
=(5+2)*3
V nasledujúcom príklade zátvorky okolo prvej časti vzorca nútia výpočet najprv vyhodnotiť výraz (3 + 0.25)
a potom výsledok vydeliť výsledkom výrazu (3 - 0.25)
.
=(3 + 0.25)/(3 - 0.25)
V nasledujúcom príklade sa operátor umocnenia použije ako prvý podľa pravidiel poradia podľa priority operátorov a potom sa použije znamienkov. Výsledok pre tento výraz je -4.
=-2^2
Ak chcete zabezpečiť, aby sa znamienkov operátor použil najprv na číselnú hodnotu, môžete na ovládanie operátorov použiť zátvorky, ako je to znázornené v nasledujúcom príklade. Výsledok pre tento výraz je 4.
= (-2)^2
Kompatibilita
Jazyk DAX jednoducho spracováva a porovnáva rôzne typy údajov, podobne ako Microsoft Excel. Základný nástroj na výpočet je však založený na službe SQL Server Analysis Services a poskytuje ďalšie pokročilé funkcie ukladacieho priestoru relačných údajov vrátane bohatšej podpory pre typy dátumu a času. Preto v niektorých prípadoch výsledky výpočtov alebo správanie funkcií nemusia byť rovnaké ako v programe Excel. Okrem toho jazyk DAX podporuje viac typov údajov ako Excel. Táto časť popisuje kľúčové rozdiely.
Vynútenie typov údajov operandov
Vo všeobecnosti by mali byť dva operandy na ľavej a pravej strane ľubovoľného operátora rovnakého typu údajov. Ak sú však typy údajov iné, jazyk DAX ich skonvertuje na spoločný typ údajov, aby v niektorých prípadoch použil operátor:
- Oba operandy sa konvertujú na najväčší možný spoločný typ údajov.
- Ak je to možné, použije sa operátor.
Predpokladajme napríklad, že máte dve čísla, ktoré chcete skombinovať. Jedno číslo je výsledkom vzorca, ako napríklad =[Price] * .20
, a výsledok môže obsahovať veľa desatinných miest. Druhé číslo je celé číslo, ktoré bolo zadané ako hodnota reťazca.
V tomto prípade jazyk DAX skonvertuje obe čísla na reálne čísla v číselnom formáte pomocou najväčšieho číselného formátu, ktorý dokáže ukladať obidva druhy čísel. Jazyk DAX potom použije násobenie.
V závislosti od kombinácie typu údajov sa pre operácie porovnávania nemusí použiť vynútenie. Úplný zoznam typov údajov podporovaných jazykom DAX nájdete v téme Typy údajov podporované v tabuľkových modeloch a Typy údajov v aplikácii Power BI Desktop.
Celé číslo, reálne číslo, mena, dátum a čas a prázdna hodnota sa považujú za číselné na účely porovnávania. Pri porovnávaní sa prázdna hodnota vyhodnotí ako nula. Pre operácie porovnania sú podporované nasledujúce kombinácie údajových typov.
Typ údajov na ľavej strane | Typ údajov na pravej strane |
---|---|
Numerické | Numerické |
Boolean | Boolean |
String | String |
Iné porovnávania zmiešaného typu údajov vrátia chybu. Napríklad vzorec ="1" > 0 vráti chybu, ktorá uvádza, že operácie porovnávania jazyka DAX nepodporujú porovnávanie hodnôt typu Text s hodnotami typu Celé číslo.
Typy údajov používané v jazyku DAX | Typy údajov používané v Exceli |
---|---|
Čísla (i8, R8) | Čísla (R8) |
String | String |
Boolean | Boolean |
Dátum a čas | Variant |
Mena | Mena |
Rozdiely v poradí podľa priority
Poradie operácií podľa priority vo vzorcoch jazyka DAX je v podstate rovnaké ako v programe Microsoft Excel, ale niektoré operátory programu Excel nie sú podporované, napríklad percento. Ani rozsahy nie sú podporované.
Preto vždy, keď skopírujete a prilepíte vzorce z Excelu, nezabudnite pozorne skontrolovať vzorec, pretože niektoré operátory alebo prvky vo vzorcoch nemusia byť platné. Ak máte pochybnosti o poradí, v ktorom sa vykonávajú operácie, odporúča sa určovať poradie operácií a odstrániť nejasnosti o výsledku pomocou zátvoriek.