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


DAX-operátorok

Az Adatelemzési kifejezés (DAX) nyelv operátorokat használ olyan kifejezések létrehozására, 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.

Aritmetikai 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 Értelmezés Példa
+ (pluszjel) Összeadás 3+3
– (mínuszjel) Kivonás vagy aláírás 3–1–1
* (csillag) Szorzás 3*3
/ (perjel) Osztály 3/3
^ (gondviselet) Hatványozás 16^4

Feljegyzés

A pluszjel bináris operátorként és nem naplós operátorként is működhet. A bináris operátorok az operátor mindkét oldalán számokat igényelnek, és összeadást hajtanak végre. Ha a bináris operátor mindkét oldalán DAX-képletben használ értékeket, a DAX numerikus adattípusokra próbálja átvenni az értékeket, ha azok még nem számok. Ezzel szemben a nem szereplő 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 egy logikai érték, igaz vagy FAL Standard kiadás.

Összehasonlító operátor Értelmezés Példa
= Egyenlő [Régió] = "USA"
== Szigorúan egyenlő [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ő [Összeg] <= 100
<> Nem egyenlő [Régió] <> "USA"

Az == kivételével minden összehasonlító operátor a BLANK értéket a 0 számmal, az üres "" sztringet, a DÁTUM(1899, 12, 30) vagy a FAL Standard kiadás értéket kezeli. Ennek eredményeképpen az [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ő 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öveg operátor Értelmezés Példa
& (és) Csatlakozás vagy összefűz két értéket egy folyamatos szöveges érték létrehozásához [Régió] & ", " & [Város]

Logikai operátorok

A kifejezések egyetlen eredmény előállításához használjon logikai operátorokat (&>) és (||) a kifejezések kombinálásához.

Szöveg operátor Értelmezés Példák
& (dupla és) Létrehoz egy AND feltételt két olyan kifejezés között, amelyek mindegyike logikai eredménnyel rendelkezik. Ha mindkét kifejezés eredménye TRUE, akkor a kifejezések kombinációja is a TRUE értéket adja vissza. A művelet eredménye minden más esetben FALSE. ([Régió] = "Franciaország") &> ([BikeBuyer] = "igen"))
|| (kettős cső szimbóluma) Vagy feltételt hoz létre két logikai kifejezés között. Ha bármelyik kifejezés IGAZ értéket ad vissza, az eredmény IGAZ; csak akkor, ha mindkét kifejezés FAL Standard kiadás az eredmény FAL Standard kiadás. (([Régió] = "Franciaország") || ([BikeBuyer] = "igen"))
IN Logikai VAGY feltételt hoz létre a táblákkal összehasonlítandó sorok között. 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 műveleti sorrendje

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
^ Hatványozás
Aláírás (a –1-hez hasonlóan)
*És/ Szorzás és osztás
+ és – Összeadás és kivonás
& Csatlakozás két szöveges sztringet (összefűzés)
=,==,<,>=<,>=,<>IN Összehasonlítás
NEM NOT (unary 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

A DAX a Microsoft Excelhez hasonlóan könnyen kezeli és hasonlítja össze a különböző adattípusokat. 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 a 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, a DAX az operátor bizonyos esetekben történő alkalmazása érdekében általános adattípussá konvertálja őket:

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

Tegyük fel például, hogy két számot szeretne egyesíteni. Egy képlet (például =[Price] * .20) egy szám eredménye, é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 a DAX mindkét számot számformátumban valós számokká alakítja, a legnagyobb numerikus formátumot használva, amely mindkét számtípust képes tárolni. Ezután a 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. A DAX által támogatott adattípusok teljes listáját a Táblázatos modellekben támogatott adattípusok és a Power BI Desktop adattí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 Logikai
Sztring Sztring

Más vegyes adattípusú összehasonlítások hibát adnak vissza. Például egy olyan képlet, mint az ="1" > 0, hibaüzenetet ad vissza, amely szerint a DAX összehasonlító műveletei nem támogatják a Szöveg típusú értékek és az egész szám típusú értékek összehasonlítását.

A DAX-ban használt adattípusok Az Excelben használt adattípusok
Számok (I8, R8) Számok (R8)
Sztring Sztring
Logikai Logikai
Dátum/idő Változat
Pénznem Pénznem

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

A 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. Emellett 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-szintaxis
DAX-paraméterelnevezés