DAX-operátorok használata

Befejeződött

A DAX-képletek operátorok használatával olyan kifejezéseket hozhatnak létre, amelyek számtani számításokat hajtanak végre, értékeket hasonlítanak össze, sztringekkel dolgoznak, vagy tesztelési feltételeket hajtanak végre.

Tipp

A DAX számos operátora és azok műveleti sorrendje is ugyanaz, mint az Excelben.

Aritmetikai operátorok

Az alábbi táblázat az aritmetikai operátorokat sorolja fel.

Operátor Leírás
+ Összeadás
- Kivonás
* Szorzás
/ Osztás
^ Hatványozás

Ne feledje, hogy ha két kifejezést oszt el, és amikor a nevező nullát vagy BLANK értéket adhat vissza, hatékonyabb és biztonságosabb a DIVIDE DAX-függvény használata.

Összehasonlító operátorok

Az alábbi táblázat a két érték összehasonlítására használható összehasonlító operátorokat sorolja fel. Ezek eredménye TRUE vagy FALSE (igaz vagy hamis) lehet.

Operátor Leírás
= Egyenlő
== Szigorúan egyenlő
> Nagyobb, mint
< Kisebb, mint
>= Nagyobb vagy egyenlő
<= Kisebb vagy egyenlő
<> Nem egyenlő

A szigorú egyenlőség (==) kivételével minden összehasonlító operátor nullaként, üres sztringként („”), az 1899. december 30. dátumként vagy a FALSE értékként kezeli a BLANK értéket. Ez azt jelenti, hogy a kifejezés [Revenue] = 0 IGAZ lesz, ha a értéke [Revenue] nulla vagy ÜRES. Ezzel szemben csak akkor IGAZ, [Revenue] == 0 ha a értéke [Revenue] nulla.

Szövegösszefűző operátor

Az & karakter két szöveges értéke összefűzésére használható egyetlen összefüggő szöveges érték előállításához. Figyelje meg például az alábbi számított oszlop definíciót:

Model Color = 'Product'[Model] & "-" & 'Product'[Color]

Logikai operátorok

Logikai operátorokkal több kifejezést kombinálhat, hogy egyetlen eredményt állítson elő. Az alábbi táblázat az összes logikai operátort felsorolja.

Operátor Leírás
&& ÉS műveletet végez két olyan kifejezéssel, amelyek mindegyikének logikai eredménye van. 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.
|| (kettős cső) Két logikai kifejezés között hoz létre VAGY kapcsolatot. Ha a kifejezések bármelyike a TRUE (igaz) értéket adja vissza, az eredmény TRUE. Az eredmény csak akkor FLASE (hamis), ha mindkét kifejezés értéke FALSE.
IN Logikai VAGY műveltet végez minden sorban egy táblával való összehasonlításkor. Megjegyzés: A táblakonstruktor szintaxisa kapcsos zárójeleket használ.
NOT Invertálja egy logikai kifejezés állapotát (a FALSE értéket TRUE-ra és fordítva).

A logikai operátort használó IN példa az ANZ Revenue mértékdefiníciója, amely a CALCULATE DAX függvénnyel kényszeríti ki két ország, Ausztrália és Új-Zéland adott szűrőjének kényszerítésére.

Megjegyzés

A nagy teljesítményű CALCULATE függvényt akkor vezetjük be, ha megtanulja, hogyan módosíthatja a szűrőkörnyezetet.

ANZ Revenue =
CALCULATE(
    [Revenue],
    Customer[Country-Region] IN {
        "Australia",
        "New Zealand"
    }
)

Operátorok műveleti sorrendje

Ha a DAX-képlet több operátort is tartalmaz, a DAX szabályok alapján határozza meg a műveletek kiértékelésének sorrendjét, más szóval az operátorok precedenciáját. A műveletek sorrendje az alábbi táblázatnak felel meg.

Operátor Leírás
^ Hatványozás
- Előjel (például: -1)
* és / Szorzás és osztás
NOT Tagadás
+ és - Összeadás és kivonás
& Két szöveges sztring összefűzése
=,==,<,>,<=,>=,<> Összehasonlítás

Ha az operátorok elsőbbséget élveznek, balról jobbra rendezik őket.

Az operátorok precedenciája általában ugyanaz, mint az Excelben. Ha felül kell bírálnia a kiértékelési sorrendet, zárójelekkel csoportosíthat operátorokat.

Figyelje meg például az alábbi számított oszlop definíciót:

Extended Amount = Sales[Order Quantity] * Sales[Unit Price] * 1 - [Unit Price Discount Pct]

Ennek a számított oszlopnak az egyszerű definíciója helytelen eredményt ad, mert a szorzás megelőzi a kivonást. A számított oszlop alábbi, helyes definíciója zárójelekkel biztosítja, hogy a kivonások a szorzások előtt legyenek elvégezve.

Extended Amount = Sales[Order Quantity] * Sales[Unit Price] * (1 - [Unit Price Discount Pct])

Tipp

A műveleti sorrendre vonatkozó szabályokat nem könnyű megjegyezni, különösen a kezdő DAX-felhasználók számára. Emiatt ajánlott a képleteket alaposan tesztelni. Ha a képletek a helytelen kiértékelési sorrend miatt nem a helyes eredményt állítják elő, akkor megpróbálhatja zárójelek beszúrásával módosítani a kiértékelés sorrendjét. Zárójeleket a képletek jobb olvashatósága érdekében is használhat.

A DAX-operátorokkal és azok precedenciájáról a DAX-operátorok című cikk nyújt további információkat.

Implicit konverzió

Ha olyan DAX-képletet ír, amelyben különböző adattípusokat kombináló operátorokat használ, nem kell explicit módon konvertálnia a típusokat. A DAX többnyire automatikusan felismeri a hivatkozott modellobjektumok adattípusát, és implicit konverziókat végez, ha ez szükséges az adott művelet végrehajtásához.

A sikeresen konvertálható értékekre azonban bizonyos korlátozások vonatkozhatnak. Ha egy érték vagy egy oszlop olyan adattípussal rendelkezik, amely nem kompatibilis az aktuális művelettel, a DAX hibát fog jelezni. Egy dátummal végzett szorzásra tett kísérlet például hibát eredményez, mert nem logikus.

A BLANK kezelése a használt operátortól függően eltérően történik. A kezelése inkább ahhoz hasonlít, ahogyan az Excel kezeli az ÜRES értékeket, nem pedig ahhoz, ahogyan az adatbázisok (SQL) kezelik a NULL értéket. A BLANK nullának számít az aritmetikai operátorok szempontjából, és üres sztringnek, ha sztringhez van hozzáfűzve.

Tipp

A BLANK kezelési módjait nem könnyű megjegyezni, különösen a kezdő DAX-felhasználók számára. Emiatt ajánlott a képleteket alaposan tesztelni. Ha a BLANK-k nem várt eredményeket hoznak létre, érdemes lehet a és ISBLANK a IF DAX-függvényt használni a BLANK teszteléséhez, majd a megfelelő módon válaszolni.