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:
- Mindkét operandus a lehető legnagyobb közös adattípusra lesz konvertálva.
- 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.
Kapcsolódó tartalom
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: