A DAX alapjainak elsajátítása a Power BI Desktopban

A Power BI Desktop új felhasználói ezt a cikket rövid és egyszerű bevezetésként használhatják az adatelemzési kifejezések (DAX) használatával számos alapszintű számítás és adatelemzési probléma megoldásához. Áttekintünk néhány fogalmi információt, egy feladatsort, amit elvégezhet, és egy tudáspróbával teszteljük a tanultakat. A cikk befejezése után jól ismernie kell a DAX legfontosabb alapfogalmait.

Mi az a DAX?

A DAX függvények, operátorok és állandók gyűjteménye, amelyek egy képletben vagy kifejezésben egy vagy több érték kiszámítására és visszaadására használhatók. A DAX segítségével új információkat hozhat létre a modellben már szereplő adatokból.

Miért olyan fontos a DAX?

Egyszerűen létrehozhat egy új Power BI Desktop-fájlt, és importálhat belőle néhány adatot. Akár olyan jelentéseket is létrehozhat, amelyek értékes megállapításokat mutatnak daX-képletek használata nélkül. De mi a teendő, ha a termékkategóriák és a különböző dátumtartományok növekedési százalékos arányát kell elemeznie? Vagy ki kell számítania az évközi növekedést a piaci trendekkel szemben? A DAX-képletek ezt a képességet és sok más fontos képességet is biztosítanak. Tanulás hatékony DAX-képletek létrehozása segít a legtöbbet kihozni az adatokból. Amikor megkapja a szükséges információkat, megkezdheti a valódi üzleti problémák megoldását, amelyek hatással vannak a lényegre.

Előfeltételek

Lehet, hogy már ismeri a képletek Microsoft Excelben való létrehozását, és ez a tudás hasznos lesz a DAX megértéséhez. Ha azonban nincs tapasztalata az Excel-képletekkel kapcsolatban, az itt ismertetett fogalmak segítenek a DAX-képletek létrehozásának megkezdésében és a valós BI-problémák megoldásában.

A számításokban, pontosabban a mértékekben és a számított oszlopokban használt DAX-képletek megértésére összpontosítunk. Már ismeri a Power BI Desktopot adatok importálásához és mezők jelentéshez való hozzáadásához, és ismernie kell a Mértékek és számított oszlopok alapvető fogalmait is.

Példa munkafüzet

A DAX megismerésének legjobb módja, ha néhány alapszintű képletet hoz létre, tényleges adatokkal használja őket, és saját maga látja az eredményeket. Az itt szereplő példák és feladatok a Power BI Desktophoz készült Contoso értékesítési mintát használják. Ez a mintafájl ugyanaz, amelyet az Oktatóanyag: Saját mértékek létrehozása a Power BI Desktopban című cikkben használt.

Kezdjük

A DAX megértését három alapvető fogalom köré fogjuk keretbe foglalnunk: szintaxis, függvények és környezet. A DAX-ban más fontos fogalmak is vannak, de ennek a három fogalomnak a megértése biztosítja a legjobb alapot a DAX-készségek fejlesztéséhez.

Syntax

Mielőtt saját képleteket hoz létre, vessünk egy pillantást a DAX-képlet szintaxisára. A szintaxis magában foglalja a képletet alkotó különböző elemeket, vagy egyszerűbben a képlet írásának módját. Íme például egy mérték egyszerű DAX-képlete:

Képernyőkép egy DAX-képletről, amely az egyes szintaxiselemekre mutató mutatókat tartalmazza.

Ez a képlet a következő szintaxiselemeket tartalmazza:

V. A mérték neve, Összes értékesítés.

B. Az egyenlőségjel operátor (=), amely a képlet elejét jelzi. A számításkor eredmény jelenik meg.

C. A SZUM DAX függvény, amely összeadja a Sales[SalesAmount] oszlop összes számát. A függvényekről később többet is megtudhat.

D. Zárójel (), amely egy vagy több argumentumot tartalmazó kifejezést vesz körül. A legtöbb függvényhez legalább egy argumentum szükséges. Egy argumentum átad egy értéket egy függvénynek.

E. A hivatkozott tábla, Értékesítés.

F. A hivatkozott [SalesAmount] oszlop a Sales táblában. Ezzel az argumentummal a SZUM függvény tudja, hogy melyik oszlopban kell összesíteni a SZUMot.

A DAX-képletek megértése során gyakran hasznos, ha minden egyes elemet egy olyan nyelvre bontunk, amelyről azt gondoljuk, és minden nap beszélünk. Ezt a képletet például a következőképpen olvashatja el:

A Total Sales (Összes értékesítés) nevű mértékhez számítsa ki (=) a Sales tábla [SalesAmount] oszlopában szereplő értékek ÖSSZEGÉT.

Ha hozzáad egy jelentést, ez a mérték kiszámítja és visszaadja az értékeket az egyes többi mező értékesítési összegeinek összegzésével, például az USA celláinak Telefon.

Lehet, hogy arra gondol, hogy "Ez a mérték nem ugyanazt teszi, mintha csak hozzáadnám a SalesAmount mezőt a jelentéshez?" Nos, igen. De van egy jó ok arra, hogy létrehozzuk a saját mértékünket, amely összegzi a SalesAmount mező értékeit: Más képletekben argumentumként is használhatjuk. Ez a megoldás most kissé zavarosnak tűnhet, de a DAX-képletek képességeinek növekedésében ennek a mértéknek a ismerete hatékonyabbá teszi a képleteket és a modellt. Valójában a Total Sales mérték később más képletekben is argumentumként jelenik meg.

Tekintsünk át még néhány dolgot erről a képletről. Bevezettünk egy függvényt, a SZUM függvényt. A függvények előre megírt képletek, amelyek megkönnyítik a számok, dátumok, időpontok, szövegek és egyebek összetett számításait és manipulációit. A függvényekről később többet is megtudhat.

Azt is láthatja, hogy a[SalesAmount] oszlopnevet megelőzte az a Sales tábla, amelyhez az oszlop tartozik. Ez a név teljes oszlopnévként ismert, mivel tartalmazza a táblanév előtti oszlopnevet. Az ugyanabban a táblában hivatkozott oszlopok nem igénylik a tábla nevét a képletben, így a hosszú képletek, amelyek több oszlopra hivatkoznak, rövidebbek és könnyebben olvashatók. Célszerű azonban a tábla nevét is belefoglalni a mértékképletekbe, még akkor is, ha ugyanabban a táblában van.

Feljegyzés

Ha egy táblanév szóközöket, fenntartott kulcsszavakat vagy tiltott karaktereket tartalmaz, a táblázat nevét egyetlen idézőjelbe kell foglalnia. A táblaneveket idézőjelek közé kell foglalnia, ha a név az ANSI alfanumerikus karaktertartományán kívüli karaktereket tartalmaz, függetlenül attól, hogy a területi beállítás támogatja-e a karakterkészletet.

Fontos, hogy a képletek helyes szintaxist alkalmazzanak. A legtöbb esetben, ha a szintaxis nem helyes, a függvény szintaxishibát ad vissza. Más esetekben a szintaxis helyes lehet, de előfordulhat, hogy a visszaadott értékek nem a várt értékek. A Power BI Desktop DAX-szerkesztője tartalmaz egy javaslati funkciót, amellyel szintaktikailag helyes képleteket hozhat létre a megfelelő elemek kiválasztásával.

Hozzunk létre egy példaképletet. Ez a feladat segít a képletszintaxis és a képletsáv javaslatok funkciójának további megértésében.

Feladat: Mértékképlet létrehozása

  1. Töltse le és nyissa meg a Contoso Sales Sample Power BI Desktop-fájlt.

  2. Jelentés nézetben a mezőlistában kattintson a jobb gombbal az Értékesítés táblára, majd válassza az Új mérték lehetőséget.

  3. A szerkesztőlécen cserélje le a Mérték elemet egy új mértéknév, az Előző negyedév értékesítésének beírásával.

  4. Az egyenlőségjel után írja be az első néhány cal betűt, majd kattintson duplán a használni kívánt függvényre. Ebben a képletben a CALCULATE függvényt szeretné használni.

    A CALCULATE függvénnyel szűrheti az összegeket a CALCULATE függvénynek átadott argumentum alapján. Ezt a függvénytípust beágyazási függvénynek nevezzük. A CALCULATE függvénynek legalább két argumentuma van. Az első a kiértékelendő kifejezés, a második pedig egy szűrő.

  5. A nyitó zárójel után ( a CALCULATE függvényhez írja be a SZUM kifejezést, majd egy másik nyitó zárójelet (.

    Ezután átadunk egy argumentumot a SZUM függvénynek.

  6. Kezdje el beírni a Sal kifejezést, majd válassza a Sales[SalesAmount] (Értékesítések) lehetőséget, majd egy záró zárójelet ..

    Ez a lépés létrehozza a CALCULATE függvény első kifejezésargumentumát.

  7. Írjon be egy vesszőt (,), majd egy szóközt az első szűrő megadásához, majd írja be a PREVIOUSQUARTER kifejezést.

    A PREVIOUSQUARTER időintelligencia függvénnyel szűrheti a SZUM eredményeket az előző negyedév szerint.

  8. A nyitó zárójel után ( a PREVIOUSQUARTER függvényhez írja be a Naptár[DateKey] kifejezést.

    A PREVIOUSQUARTER függvénynek van egy argumentuma, egy oszlop, amely egy összefüggő dátumtartományt tartalmaz. Esetünkben ez a Naptár tábla DateKey oszlopa.

  9. Zárja be a PREVIOUSQUARTER függvénynek és a CALCULATE függvénynek átadott argumentumokat két záró zárójel beírásával )).

    A képletnek így kell kinéznie:

    Előző negyedévi értékesítések = CALCULATE(SUM(Sales[SalesAmount]), PREVIOUSQUARTER(Calendar[DateKey]))

  10. Jelölje ki a jelölőnégyzetet Pipa ikon a szerkesztőlécen, vagy nyomja le az Enter billentyűt a képlet érvényesítéséhez és a Sales táblához való hozzáadásához.

Megcsinálta! Most hozott létre egy összetett mértéket a DAX használatával. Ez a képlet az előző negyedév teljes értékesítését számítja ki a jelentésben alkalmazott szűrőktől függően. Elhelyezhetjük például a SalesAmount és az új Előző negyedéves értékesítés mértéket a Sales táblából egy csoportosított oszlopdiagramba. Ezután a Naptár táblából adja hozzá az Év szeletelőt, és válassza a 2011 lehetőséget. Ezután adja hozzá a QuarterOfYeart egy másik szeletelőként, és válassza a 4 lehetőséget, és a következő diagramot kapjuk:

Előző negyedévi értékesítés és SalesAmount diagram

Ne feledje, hogy a mintamodell csak kis mennyiségű értékesítési adatot tartalmaz 2011. 01. 01. és 2013. 19. 19. között. Ha olyan évet vagy negyedévet jelöl ki, amelyben a SalesAmount nem összegezhető, vagy az új mérték nem tudja kiszámítani az aktuális vagy az előző negyedév értékesítési adatait, az adott időszakra vonatkozó adatok nem jelennek meg. Ha például a 2011-et választja az Év, a QuarterOfYear esetében pedig az 1-et, akkor az előző negyedéves értékesítésekhez nem jelennek meg adatok, mert 2010 negyedik negyedévére vonatkozóan nincsenek adatok.

A DAX-képletek számos fontos aspektusát ismertette:

  • Ez a képlet két függvényt tartalmazott. A PREVIOUSQUARTER időintelligencia-függvény a CALCULATE, egy szűrőfüggvénynek átadott argumentumként van beágyazva.

    A DAX-képletek legfeljebb 64 beágyazott függvényt tartalmazhatnak. Nem valószínű, hogy egy képlet ennyi beágyazott függvényt tartalmazna. Valójában egy ilyen képlet létrehozása és hibakeresése nehéz lenne, és valószínűleg nem is lenne gyors.

  • Ebben a képletben szűrőket is használt. A szűrők szűkítik a kiszámítandó értéket. Ebben az esetben egy szűrőt választott argumentumként, ami valójában egy másik függvény eredménye. A szűrőkről később többet is megtudhat.

  • A CALCULATE függvényt használta. Ez a függvény a DAX egyik legerősebb függvénye. Amikor modelleket készít és összetettebb képleteket hoz létre, valószínűleg többször is használni fogja ezt a függvényt. Bár a CALCULATE függvénnyel kapcsolatos további vita a jelen cikk hatókörén kívül esik, a DAX ismeretének növekedésével különös figyelmet kell fordítani rá.

Szintaxis – QuickQuiz

  1. Mit tesz ez a gomb a szerkesztőlécen?

    Gombkijelölés

  2. Mi veszi körül mindig az oszlopnevet egy DAX-képletben?

A válaszokat a cikk végén találja.

Functions

A függvények előre definiált képletek, amelyek meghatározott értékek, úgynevezett argumentumok használatával végeznek számításokat egy adott sorrendben vagy struktúrában. Az argumentumok lehetnek más függvények, más képletek, kifejezések, oszlophivatkozások, számok, szöveg, logikai értékek, például IGAZ vagy FAL Standard kiadás vagy állandók.

A DAX a következő függvénykategóriákat tartalmazza: Dátum és idő, Időintelligencia, Információ, Logikai, Matematikai, Statisztikai, Szöveg, Szülő/Gyermek és Egyéb függvények. Ha már ismeri az Excel-képletekben található függvényeket, a DAX-függvények nagy része az Önhöz hasonlóan jelenik meg; A DAX-függvények azonban a következő módokon egyediek:

  • A DAX-függvények mindig egy teljes oszlopra vagy táblára hivatkoznak. Ha csak egy tábla vagy oszlop adott értékeit szeretné használni, szűrőket is hozzáadhat a képlethez.

  • Ha sorról sorra kell testre szabnia a számításokat, a DAX olyan függvényeket biztosít, amelyekkel az aktuális sorértéket vagy a kapcsolódó értéket argumentumként használhatja a környezet alapján végzett számításokhoz. Később többet is megtudhat a környezetről.

  • A DAX számos függvényt tartalmaz, amelyek egy táblát adnak vissza érték helyett. A tábla nem jelenik meg, de más függvények bemenetére szolgál. Lekérhet például egy táblát, majd megszámolhatja benne a különböző értékeket, vagy dinamikus összegeket számíthat ki szűrt táblák vagy oszlopok között.

  • A DAX különböző időintelligencia-függvényeket tartalmaz. Ezek a függvények lehetővé teszik a dátumtartományok meghatározását vagy kiválasztását, és ezek alapján dinamikus számításokat hajthat végre. Összehasonlíthatja például az összegeket párhuzamos időszakokban.

  • Az Excel népszerű függvénye az FKERES függvény. A DAX-függvények nem vesznek fel cella- vagy cellatartományt hivatkozásként, mint az FKERES függvény az Excelben. A DAX-függvények hivatkozásként egy oszlopot vagy táblát vesznek fel. Ne feledje, hogy a Power BI Desktopban relációs adatmodellel dolgozik. Egy másik táblában egyszerűen kereshet értékeket, és a legtöbb esetben egyáltalán nem kell képleteket létrehoznia.

    Mint látható, a DAX-függvények hatékony képletek létrehozásában nyújtanak segítséget. Csak a függvények alapjait érintettük. A DAX-képességek növekedésével számos különböző függvény használatával hozhat létre képleteket. Az egyes DAX-függvényekkel kapcsolatos részletek megismerésének egyik legjobb helye a DAX-függvények referenciája.

Functions QuickQuiz

  1. Mire hivatkozik mindig egy függvény?
  2. Egy képlet több függvényt is tartalmazhat?
  3. Milyen függvénykategóriát használna két szöveges sztring egy sztringbe való összefűzéséhez?

A válaszokat a cikk végén találja.

Környezet

A környezet az egyik legfontosabb DAX-fogalom, amelyet meg kell érteni. A DAX-ban kétféle környezet létezik: sorkörnyezet és szűrőkörnyezet. Először a sorkörnyezetet vizsgáljuk meg.

Sorkörnyezet

A sorkörnyezetet a legegyszerűbben az aktuális sornak kell tekinteni. Akkor érvényes, ha egy képlet olyan függvényt tartalmaz, amely szűrőket alkalmaz egy tábla egyetlen sorának azonosítására. A függvény eredendően egy sorkörnyezetet alkalmaz annak a táblázatnak minden sorára, amelyre szűr. Ez a sorkörnyezet leggyakrabban a mértékekre vonatkozik.

Szűrőkörnyezet

A szűrőkörnyezetet egy kicsit nehezebb megérteni, mint a sorkörnyezetet. A szűrőkörnyezetet a legegyszerűbben úgy tekintheti, mint: Egy vagy több, eredményt vagy értéket meghatározó számításban alkalmazott szűrő.

A szűrőkörnyezet nem létezik a sorkörnyezet helyett; hanem a sorkörnyezetre is vonatkozik. Ha például tovább szeretné szűkíteni a számításba belefoglalandó értékeket, alkalmazhat szűrőkörnyezetet, amely nem csak a sorkörnyezetet határozza meg, hanem egy adott értéket (szűrőt) is meghatároz az adott sorkörnyezetben.

A szűrőkörnyezet könnyen látható a jelentésekben. Ha például hozzáadja a TotalCostot egy vizualizációhoz, majd hozzáadja az Évet és a Régiót, egy olyan szűrőkörnyezetet határoz meg, amely egy adott év és régió alapján választja ki az adatok egy részét.

Miért olyan fontos a szűrőkörnyezet a DAX számára? Láthatta, hogy a szűrőkörnyezet úgy alkalmazható, hogy mezőket ad hozzá egy vizualizációhoz. A szűrőkörnyezet DAX-képletekben is alkalmazható, ha olyan függvényeket definiál, mint az ALL, a RELATED, a FILTER, a CALCULATE, a kapcsolatok, valamint más mértékek és oszlopok. Nézzük meg például a következő képletet egy Store Sales nevű mértékben:

Áruházi értékesítés mértéke

A képlet jobb megértése érdekében lebonthatjuk, hasonlóan más képletekhez.

Ez a képlet a következő szintaxiselemeket tartalmazza:

V. A mérték neve, Store Sales.

B. Az egyenlőségjel operátor (=), amely a képlet elejét jelzi.

C. A CALCULATE függvény, amely argumentumként kiértékel egy kifejezést egy olyan környezetben, amelyet a megadott szűrők módosítanak.

D. Zárójel (), amely egy vagy több argumentumot tartalmazó kifejezést vesz körül.

E. Mérték [Total Sales] ugyanabban a táblában, mint egy kifejezés. A Total Sales mérték képlete: =SZUM(Sales[SalesAmount]).

F. Vessző (,), amely elválasztja az első kifejezésargumentumot a szűrőargumentumtól.

G. A teljes mértékben minősített hivatkozott oszlop, a Channel[ChannelName]. Ez a sorkörnyezetünk. Az oszlop minden sora meghatároz egy csatornát, például a Store-t vagy az Online-t.

H. Az adott érték, a Store, mint szűrő. Ez a szűrőkörnyezetünk.

Ez a képlet biztosítja, hogy csak a Total Sales mérték által meghatározott értékesítési értékek legyenek kiszámítva csak a Channel[ChannelName] oszlopban lévő sorokra, és a Store értéket szűrőként használják.

Képzelhető el, hogy a szűrőkörnyezet képleten belüli definiálása hatalmas és hatékony képességekkel rendelkezik. A kapcsolódó táblákban csak egy adott értékre lehet hivatkozni, csak egy ilyen példa. Ne aggódjon, ha nem teljesen érti a kontextust azonnal. Saját képletek létrehozásakor jobban megértheti a kontextust, és hogy miért olyan fontos a DAX-ban.

Környezet – QuickQuiz

  1. Mi a két típusú környezet?
  2. Mi az a szűrőkörnyezet?
  3. Mi az a sorkörnyezet?

A válaszokat a cikk végén találja.

Összegzés

Most, hogy alapszintű ismeretekkel rendelkezik a DAX legfontosabb fogalmairól, megkezdheti a DAX-képletek létrehozását a mértékek számára. A DAX-ot valóban egy kicsit nehéz megtanulni, de számos erőforrás áll rendelkezésre. Miután elolvasta ezt a cikket, és kísérletezett néhány saját képlettel, többet tudhat meg más DAX-fogalmakról és képletekről, amelyek segíthetnek a saját üzleti problémáinak megoldásában. Számos DAX-erőforrás érhető el; a legfontosabb az adatelemzési kifejezések (DAX) referenciája.

Mivel a DAX már évek óta jelen van más Microsoft BI-eszközökben, például a Power Pivot és az Analysis Services táblázatos modelljeiben, számos nagyszerű forrásinformáció áll rendelkezésre. További információt a Microsoft és a vezető BI-szakemberek könyveiben, tanulmányaiban és blogjaiban találhat. A DAX-erőforrásközpont is remek kiindulópont.

QuickQuiz-válaszok

Szintaxis:

  1. Ellenőrzi és beírja a mértéket a modellbe.
  2. Szögletes zárójelek [].

Functions:

  1. Egy tábla és egy oszlop.
  2. Igen. A képletek legfeljebb 64 beágyazott függvényt tartalmazhatnak.
  3. Szövegfüggvények.

Környezet:

  1. Sorkörnyezet és szűrőkörnyezet.
  2. Egy vagy több szűrő egy számításban, amely egyetlen értéket határoz meg.
  3. Az aktuális sor.