DAX-képletek írása

Befejeződött

Minden modellszámítás-típus, a számított tábla, a számított oszlop és a mérték is a nevével van definiálva, amelyet egy egyenlőségjel (=), majd egy DAX-képlet követ. Hozzon létre modellszámítást az alábbi sablon használatával:

<Calculation name> = <DAX formula>

A Dátum tábla adatait duplikáló Szállítási dátum számított tábla definíciója például a következő:

Ship Date = 'Date'

Egy DAX-képlet eredményt visszaadó kifejezésekből áll. Az eredmény vagy egy tábla objektum, vagy egy skalár érték. A számított táblaképleteknek egy táblaobjektumot kell visszaadnia; a számított oszlop- és mértékképleteknek skaláris értéket (egyetlen értéket) kell visszaadnia.

A képletek a következő elemekből állíthatók össze:

  • DAX-függvények
  • DAX-operátorok
  • Modellobjektumokra mutató hivatkozások
  • Állandó értékek, például a 24-es szám vagy a "FY" literális szöveg (pénzügyi év rövidítése)
  • DAX-változók
  • Térköz

Tipp

Amikor DAX-képleteket ad meg Power BI Desktop, az IntelliSense előnyeit élvezheti. Az IntelliSense kiegészítési segédeszköz, amely felsorolja a függvényeket és a modell erőforrásait. Egy DAX-függvény kiválasztásakor annak definícióját és leírását is megadja. Ajánlott az IntelliSense-t használni, amely segít gyorsan elkészíteni a pontos képleteket.

DAX-függvények

A Microsoft Excelhez hasonlóan a DAX egy funkcionális nyelv, amely azt jelenti, hogy a képletek függvényekre támaszkodnak adott célok eléréséhez. A DAX-függvények általában olyan argumentumokkal rendelkeznek, amelyek lehetővé teszik a változók átadását. A képletek több függvényhívást is használhatnak, és gyakran más függvényekbe ágyaznak be függvényeket.

A képletekben a függvénynevek után zárójelnek kell következnie. A zárójeleken belül vannak átadva a változók.

Megjegyzés

Egyes függvényeknek nincs argumentumuk, vagy az argumentumaik opcionálisak.

A DAX-függvények használatát a modul egy későbbi része ismerteti.

DAX-operátorok

A képletek operátorokra is támaszkodnak, amelyek képesek aritmetikai számítások elvégzésére, értékek összehasonlítására, sztringekkel való munkára vagy tesztelési feltételekre.

A DAX-operátorokat a modul egy későbbi része mutatja be részletesebben.

Modellobjektumokra mutató hivatkozások

A képletek csak háromféle modellobjektumra hivatkozhatnak: táblákra, oszlopokra vagy mértékekre. Képlet nem hivatkozhat hierarchiára vagy hierarchiaszintre. (Mint tudja, a hierarchiaszintek egy oszlopon alapulnak, tehát a képlet hivatkozhat a hierarchiaszint oszlopára.)

Táblahivatkozások

Ha képletben hivatkozik egy táblára, hivatalosan a tábla neve egyetlen idézőjelek közé kerül. Az alábbi számított tábladefinícióban figyelje meg, hogy a Date tábla egyetlen idézőjelek közé van zárva.

Ship Date = 'Date'

Az aposztróf azonban el is hagyható, ha az alábbi feltételek mindegyike teljesül:

  1. A tábla neve nem tartalmaz szóközt.
  2. A táblanév nem a DAX által használt fenntartott szó. Minden DAX-függvénynév és -operátor fenntartott szó. A Date egy DAX-függvénynév, amely megmagyarázza, hogy miért kell idézőjelek közé tenni egy Date nevű táblára hivatkozva.

Az alábbi számított tábla definíciójában kihagyható az egyetlen idézőjel, amikor az Airport táblára hivatkozik:

Arrival Airport = Airport

Oszlophivatkozások

Ha egy képlet egy oszlopára hivatkozik, az oszlop nevét szögletes zárójelek közé kell tenni. Opcionálisan eléírhatja a tábla nevét. Az alábbi mértékdefiníció például a Sales Amount oszlopra hivatkozik.

Revenue = SUM([Sales Amount])

Mivel az oszlopnevek egy táblán belül egyediek, de a modellben nem feltétlenül azok, az oszlopra való hivatkozás úgy tehető egyértelművé, hogy eléírja a tábla nevét. Az ilyen egyértelműen megadott oszlopokat teljesen minősített oszlopoknak nevezik. Egyes DAX-függvények megkövetelik a teljesen minősített oszlopnevek átadását.

Tipp

A képletek olvashatóságának javítása érdekében ajánlott minden oszlophivatkozás előtt megadni a tábla nevét is.

A fenti mértékdefinícós példa az alábbi módon írható át:

Revenue = SUM(Sales[Sales Amount])

Mértékhivatkozások

Ha egy képletben egy mértékre hivatkozik, például az oszlopnévre, a mérték nevét szögletes zárójelek közé kell tenni. Az alábbi mértékdefiníció például a Revenue és a Cost mértékre hivatkozik.

Profit = [Revenue] - [Cost]

Ha kezdő DAX-et használ, az a tény, hogy az oszlop- és mértékhivatkozások mindig szögletes zárójelek közé kerülnek, zavart okozhat a képletek olvasása közben. A DAX alapjainak ismeretében azonban meg tudja állapítani, hogy milyen típusú objektumról van szó, mert a DAX-képletekben, oszlopokban és mértékekben különböző módokon használják.

Tipp

Egy mértékhivatkozás előtt is megadható a tábla neve. A mértékek azonban modellszintű objektumok. Hozzá vannak ugyan rendelve egy saját táblához, ez azonban csak a mértékek Mezők panelen megjelenő logikai elrendezését segítő, a jobb megjelenést szolgáló kapcsolat.

Emiatt, bár az oszlophivatkozásokhoz ajánlott mindig megadni a tábla nevét is, a mértékekre ennek éppen az ellenkezője vonatkozik: Azt javasoljuk, hogy a mértékekhez soha ne adjon meg táblanevet.

További információ: Oszlop- és mértékhivatkozások.

DAX-változók

A képletek DAX-változókat deklarálhatnak az eredmények tárolásához.

A modul egy későbbi részében lesz szó arról, hogy hogyan és mikor érdemes DAX-változókat használni.

Térköz

A térköz olyan karaktereket jelent, amelyekkel a képletek gyorsan és könnyen megérthető alakba formázhatók. Térköz-karakterek többek között az alábbiak:

  • Szóközök
  • Tabulátorok
  • Kocsivissza karakterek

A tréközök opcionálisak, nem módosítják a képlet logikáját, és nem befolyásolják a teljesítményt. Erősen ajánlott saját formázási stílust kialakítani, és azt következetesen alkalmazni, figyelembe véve az alábbi javaslatokat:

  • Használjon szóközöket az operátorok között.
  • Használjon tabulátorokat a beágyazott függvényhívások behúzásához.
  • Használjon kocsivissza karaktereket a függvényargumentumok elválasztására, különösen akkor, ha azok nem férnek el egy sorban. Az ilyen formázás megkönnyíti a hibakeresést, különösen olyan esetben, amikor egy zárójel hiányzik a képletből.
  • Inkább túl sok térközt használjon, mint túl keveset.

Tipp

A szerkesztőlécen a Shift+Enter billentyűkombinációt lenyomva adja meg a kocsivisszajelet. Ha egyedül lenyomja az Enter billentyűt , véglegesíti a képletet.

Figyelje meg az alábbi mértékdefiníciót, amely egyetlen sorba van írva, és öt DAX-függvény hívását tartalmazza:

Revenue YoY % = DIVIDE([Revenue] - CALCULATE([Revenue], SAMEPERIODLASTYEAR('Date'[Date])), CALCULATE([Revenue], SAMEPERIODLASTYEAR('Date'[Date])))

Az alábbi példán ugyanez a mértékdefiníció látható, de megformázva, miáltal egyszerűbben olvasható és megérthető:

Revenue YoY % =
DIVIDE(
    [Revenue]
        - CALCULATE(
            [Revenue],
            SAMEPERIODLASTYEAR('Date'[Date])
    ),
    CALCULATE(
        [Revenue],
        SAMEPERIODLASTYEAR('Date'[Date])
    )
)

Próbálja meg önállóan formázni a mértéket. Nyissa meg az Adventure Works DW 2020 M02.pbix Power BI Desktop fájlt, majd a Mezők panelen bontsa ki az Értékesítés táblát, majd válassza ki a Revenue YoY % mértéket. A szerkesztőlécen a tabulátor- és kocsivissza karakterekkel ugyanazt az eredményt hozza létre, mint az előző példában. Amikor kocsivisszaadást ad hozzá, ne felejtse el lenyomni a Shift+Enter billentyűkombinációt.

Ez a mértékdefiníció tovább javítható az olvashatóság és a teljesítmény szempontjából, amelyet a modul későbbi részében ismertetünk.

Tipp

Más forrásból származó kiváló formázó eszköz, amely segítségére lehet a számítások formázásában, a DAX Formatter. Ez az eszköz lehetővé teszi a számítás beillesztését és formázását. Ezután átmásolhatja a formázott számítást a vágólapra, és beillesztheti a Power BI Desktop.