Megosztás a következőn keresztül:


DAX operátorok

A Data Analysis Expression (DAX) nyelv operátorok használatával olyan kifejezéseket hoz létre, amelyek értékeket hasonlítanak össze, aritmetikai számításokat végeznek, vagy sztringekkel dolgoznak.

Operátorok típusai

A számítási operátoroknak négy különböző típusa van: aritmetika, összehasonlítás, szövegösszefűzés és logikai.

Számtani operátorok

Alapvető matematikai műveletek, például összeadás, kivonás vagy szorzás végrehajtása; számok egyesítése; és numerikus eredményeket hoz létre, használja a következő számtani operátorokat.

Számtani operátor Jelentés Példa
+ (+jel) Összeadás 3+3
- mínuszjel Kivonás vagy aláírás 3-1-1
* (csillagjel) Szorzás 3*3
/ (perjel) Osztás 3/3
^ (kalap) Exponenciális 16^4

Jegyzet

A pluszjel működhet bináris operátorként és unáris operátorként . A bináris operátorok az operátor mindkét oldalán számokat igényelnek, és összeadást hajtanak végre. Amikor egy DAX képletben a bináris operátor mindkét oldalán értékeket használ, a DAX megpróbálja az értékeket numerikus adattípusokra konvertálni, ha azok még nem számok. Az unáris operátor bármilyen típusú argumentumra alkalmazható. A pluszjel nem befolyásolja a típust vagy az értéket, és egyszerűen figyelmen kívül hagyja, míg a mínusz operátor negatív értéket hoz létre, ha numerikus értékre van alkalmazva.

Összehasonlító operátorok

Két értéket hasonlíthat össze a következő operátorokkal. Ha két értéket hasonlít össze ezekkel az operátorokkal, az eredmény logikai érték, TRUE vagy FALSE.

Összehasonlító operátor Jelentés Példa
= Egyenlő [Régió] = "USA"
== Szigorú egyenlőség [Régió] == "USA"
> Nagyobb, mint [Értékesítési dátum] > "2009. január"
< Kisebb mint [Értékesítési dátum] < "2009. január 1."
>= Nagyobb vagy egyenlő [Összeg] >= 20000
<= Kisebb vagy egyenlő [Mennyiség] <= 100
<> Nem egyenlő [Régió] <> "Egyesült Államok"

Az == kivételével minden összehasonlító operátor úgy kezeli a BLANK-t, mint egyenlőt a 0 számmal, az üres sztringgel "", a DATE(1899, 12, 30) dátummal vagy a FALSE-vel. Ennek eredményeként a [Oszlop] = 0 igaz lesz, ha az [Oszlop] értéke 0 vagy BLANK. Ezzel szemben a [Oszlop] == 0 csak akkor igaz, ha az [Oszlop] értéke 0.

Szövegösszefűzési operátor

Az ampersand (&) használatával két vagy több szöveges sztringet illeszthet össze vagy fűzhet össze egyetlen szövegrész létrehozásához.

Szövegkezelő Jelentés Példa
& (és-jel) Két értéket csatlakoztat vagy összefűz egy folyamatos szöveges érték létrehozásához [Region] & ", " & [City]

Logikai operátorok

Logikai operátorok (&&) és (||) használatával kombinálhatja a kifejezéseket egyetlen eredmény létrehozásához.

Szövegkezelő Jelentés Példák
&&(dupla ésjel) Létrehoz egy AND feltételt két olyan kifejezés között, amelyek mindegyike logikai eredményt ad. Ha mindkét kifejezés TRUEad vissza, a kifejezések kombinációja TRUE; ellenkező esetben a kombináció FALSEad vissza. ([Region] = "France") && ([BikeBuyer] = "yes"))
|| (kettős cső szimbóluma) Létrehoz egy OR feltételt két logikai kifejezés között. Ha bármelyik kifejezés TRUE-t ad vissza, az eredmény TRUE; csak akkor, ha mindkét kifejezés FALSE, az eredmény FALSE. (([Region] = "France") || ([BikeBuyer] = "yes"))
IN Logikai OR feltételt hoz létre az egyes sorok és a táblázat között, amelyhez hasonlítjuk őket. Megjegyzés: a táblakonstruktor szintaxisa kapcsos zárójeleket használ. 'Product'[Color] IN { "Red", "Blue", "Black" }

Operátorok és sorrend

Bizonyos esetekben a számítás sorrendje befolyásolhatja a visszatérési értéket; ezért fontos megérteni, hogyan határozható meg a sorrend, és hogyan módosíthatja a sorrendet a kívánt eredmények eléréséhez.

Számítási sorrend

A kifejezések egy adott sorrendben értékelik ki az operátorokat és az értékeket. Minden kifejezés mindig egyenlőségjellel (=) kezdődik. Az egyenlőségjel azt jelzi, hogy a következő karakterek egy kifejezést alkotnak.

Az egyenlőségjelet követve a kiszámítandó elemek (operandusok), amelyeket számítási operátorok választanak el egymástól. A kifejezések mindig balról jobbra íródnak, de zárójelek használatával bizonyos mértékig szabályozható az elemek csoportosításának sorrendje.

Operátorok elsőbbsége

Ha több operátort egyesít egyetlen képletben, a műveletek sorrendje az alábbi táblázat szerint történik. Ha az operátorok azonos elsőbbséget élveznek, a rendszer balról jobbra rendezi őket. Ha például egy kifejezés szorzási és osztási operátort is tartalmaz, a rendszer a kifejezésben megjelenő sorrendben értékeli ki őket balról jobbra.

Operátor Leírás
^ Exponenciális
Aláírás (például –1)
* és / Szorzás és osztás
+ és Hozzáadás és kivonás
& Két szöveges sztringet kapcsol össze (összefűzés)
=,==,<,>,<=,>=,<>,IN Összehasonlítás
NOT NOT (nem szereplő operátor)

Zárójelek használata a számítási sorrend szabályozásához

A kiértékelési sorrend módosításához zárójelbe kell tenni a képlet azon részét, amelyet először ki kell számítani. Az alábbi képlet például 11-et állít elő, mert a szorzás kiszámítása az összeadás előtt történik. A képlet megszorozza a 2-et 3-tal, majd hozzáad 5-öt az eredményhez.

=5+2*3

Ezzel szemben, ha zárójelek használatával módosítja a szintaxist, a rendszer úgy módosítja a sorrendet, hogy az 5 és a 2 össze lesz adva, az eredmény pedig 3-tal megszorozva 21-et eredményez.

=(5+2)*3

Az alábbi példában a képlet első része körüli zárójelek arra kényszerítik a számítást, hogy először kiértékelje a kifejezést (3 + 0.25), majd ossza el az eredményt a kifejezés eredményével, (3 - 0.25).

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

Az alábbi példában először az exponenciális operátort alkalmazza a rendszer az operátorok elsőbbségi szabályai szerint, majd az előjel operátort alkalmazza. A kifejezés eredménye -4.

=-2^2

Annak érdekében, hogy az előjel operátor először a numerikus értékre legyen alkalmazva, zárójelekkel szabályozhatja az operátorokat, ahogyan az az alábbi példában is látható. A kifejezés eredménye 4.

= (-2)^2

Kompatibilitás

DAX egyszerűen kezeli és összehasonlítja a különböző adattípusokat, hasonlóan a Microsoft Excelhez. A mögöttes számítási motor azonban az SQL Server Analysis Servicesen alapul, és a relációs adattár további speciális funkcióit biztosítja, beleértve a dátum- és időtípusok részletesebb támogatását is. Ezért bizonyos esetekben előfordulhat, hogy a számítások eredményei vagy a függvények viselkedése nem azonos az Excelben leírtakkal. Ezenkívül DAX több adattípust támogat, mint az Excel. Ez a szakasz a főbb különbségeket ismerteti.

Operandusok adattípusainak kényszerítése

Általában minden operátor bal és jobb oldalán lévő két operandusnak azonos adattípusúnak kell lennie. Ha azonban az adattípusok eltérnek, DAX átalakítja őket egy közös adattípusra, hogy bizonyos esetekben alkalmazza az operátort:

  1. Mindkét operandus a lehető legnagyobb közös adattípusra lesz konvertálva.
  2. Ha lehetséges, az operátort alkalmazzák.

Tegyük fel például, hogy két számot szeretne egyesíteni. Egy szám egy képletből származik, például =[Price] * .20, és az eredmény sok tizedesjegyet tartalmazhat. A másik szám egy sztringértékként megadott egész szám.

Ebben az esetben DAX mindkét számot számformátumban valós számmá alakítja, a legnagyobb számformátumot használva, amely mindkét számtípust képes tárolni. Ezután DAX alkalmazza a szorzást.

Az adattípus-kombinációtól függően előfordulhat, hogy a típuskényszer nem alkalmazható összehasonlítási műveletekre. Az DAXáltal támogatott adattípusok teljes listáját a Táblázatos modellekben támogatott adattípusok és A Power BI Desktopadattípusai című témakörben találja.

Az egész szám, a valós szám, a pénznem, a dátum/idő és az üres szám összehasonlítási célokat szolgál. Az üres érték nullára lesz értékelve összehasonlítás végrehajtásakor. Az összehasonlítási műveletekhez az alábbi adattípus-kombinációk támogatottak.

Bal oldali adattípus Jobb oldali adattípus
Numerikus Numerikus
Logikai érték Logikai érték
Húr Húr

Más vegyes adattípusú összehasonlítások hibát adnak vissza. Például egy olyan képlet, mint az ="1" > 0, hibát ad vissza, amely azt jelzi, hogy DAX összehasonlító műveletek nem támogatják a Szöveg típusú értékek és az Egésztípusú értékek összehasonlítását.

A DAX használt adattípusok Az Excelben használt adattípusok
Számok (I8, R8) Számok (R8)
Húr Húr
Logikai érték Logikai érték
DátumIdő Változat
Valuta Valuta

Az elsőbbségi sorrend különbségei

Az DAX képletekben a műveletek sorrendje alapvetően megegyezik a Microsoft Excel által használt sorrenddel, de egyes Excel-operátorok nem támogatottak, például százalék. Ezenkívül a tartományok nem támogatottak.

Ezért minden alkalommal, amikor képleteket másol és illeszt be az Excelből, mindenképpen alaposan tekintse át a képletet, mert előfordulhat, hogy a képletek egyes operátorai vagy elemei érvénytelenek. Ha kétség merül fel a műveletek végrehajtásának sorrendjével kapcsolatban, javasoljuk, hogy zárójelekkel szabályozza a műveletek sorrendjét, és távolítsa el az eredményekkel kapcsolatos kétértelműségeket.

DAX szintaxisDAX paraméter elnevezés