Ez a rövid útmutató az Excelhez készült Power Pivot vagy az SQL Server Data Tools táblázatos modellprojektek új felhasználóinak készült. Célja, hogy gyors és egyszerű bevezetést nyújtson ahhoz, hogyan használható adatelemzési kifejezések (Data Analysis Expressions) számos alapvető adatmodellezési és elemzési probléma megoldására. Ez a témakör fogalmi információkat, elvégezhető feladatok sorozatát és néhány tesztet tartalmaz, amelyekkel tesztelheti az elsajátított ismereteket. A témakör elvégzése után jól ismernie kell a DAX alapfogalmait.
Mi a DAX?
A DAX függvények, operátorok és állandók gyűjteménye, amely képletekben vagy kifejezésekben használható egy vagy több érték kiszámítására és visszaadására. A DAX egyszerűbben fogalmazva segít új információkat előállítani a modellben már meglévő adatokból.
Miért olyan fontos a DAX?
Könnyen létrehozhat munkafüzetet, és importálhat belőle adatokat. Fontos adatokat megjelenítő kimutatásokat vagy kimutatásdiagramokat is létrehozhat DAX-képletek használata nélkül. De mi a teendő, ha több termékkategória és dátumtartomány kritikus értékesítési adatait kell elemeznie? Vagy össze kell vonnia a különböző adatforrásokhoz tartozó táblák fontos leltáradatait? A DAX-képletek biztosítják ezt a lehetőséget, valamint számos más fontos lehetőséget. Ha megtanulja, hogyan hozhat létre hatékony DAX-képleteket, a segítségével a legtöbbet hozhatja ki adataiból. Ha megkapta a szükséges információkat, megkezdheti a valódi üzleti problémák megoldását, amelyek befolyásolják az eredményt. Ez az üzleti intelligencia, és a DAX segíthet elérni ezt a célt.
Előfeltételek
Bizonyára már ismeri a képletek létrehozásának módját a Microsoft Excelben. Ez a tudás segítséget nyújt a DAX megértéséhez, de még ha nincs is tapasztalata az Excel-képletek használatában, az itt ismertetett fogalmak segítségével azonnal hozzáfoghat a DAX-képletek létrehozásához és a valós üzletiintelligencia-problémák megoldásához.
Különös figyelmet fordítunk a számításokban használt DAX-képletek megismerésére. Bizonyára már ismeri a számított oszlopok és a mértékek (más néven számított mezők) alapvető fogalmait, amelyekről a Power Pivot súgója nyújt tájékoztatást. Ismernie kell a Power Pivot beépülő modult is az Excel szerzői környezetében és eszközeiben.
Példamunkafüzet
A DAX megismerésének legjobb módja, ha létrehoz néhány egyszerű képletet, felhasználja valamilyen adattal, és saját maga megnézi az eredményt. Az itt található példák és feladatok a Contoso minta DAX Formulas.xlsx-munkafüzetét használják. A munkafüzetet a http://go.microsoft.com/fwlink/?LinkID=237472&clcid=0x409 innen töltheti le. Miután letöltötte a munkafüzetet a számítógépre, nyissa meg, majd nyissa meg a Power Pivot ablakot.
Kezdjük!
A DAX kereteit három nagyon fontos alapfogalom köré fogjuk keretezni: szintaxis, függvények és környezet. Természetesen vannak más fontos fogalmak is a DAX szolgáltatásban, de e három fogalom ismerete biztosítja a legjobb alapot a DAX-készségek fejlesztéséhez.
Szintaxis
Mielőtt saját képleteket hozna létre, vessen egy pillantást a DAX-képletek szintaxisára. A szintaxis magában foglalja a képletek alkotóelemeit, egyszerűbben a képlet megírásának módját. Vegyünk például egy egyszerű DAX-képletet, amellyel új adatokat (értékeket) hozhat létre egy FactSales nevű táblázat Margin nevű számított oszlopának minden sorában: (a képletek színei csak szemléltetési célokat szolgálnak)
A képlet szintaxisa a következő elemeket tartalmazza:
- Az egyenlőségjel operátor (=) a képlet kezdetét jelzi, és a képlet kiszámításakor eredményt vagy értéket ad vissza. Minden értékkel kezdődő képlet egyenlőségjellel kezdődik.
- A hivatkozott oszlop [ÉrtékesítésMennyiség] tartalmazza azokat az értékeket, amelyekből ki szeretnénk vonni. A képletben lévő oszlophivatkozásokat mindig szögletes zárójelek [] veszik körül. A cellára hivatkozó Excel-képletekkel ellentétben a DAX-képletek mindig egy oszlopra hivatkoznak.
- A kivonás (-) matematikai operátor.
- A hivatkozott oszlop [TotalCost] tartalmazza azokat az értékeket, amelyeket ki szeretnénk vonni az [ÉrtékesítésMennyisége] oszlop értékeiből.
A DAX-képletek értelmezésének megértésekor gyakran hasznos, ha az elemeket lebontja egy olyan nyelvre, amelyen mindennap gondolkodik és beszél. Ez a képlet olvasható például a következőképpen:
A FactSalestable táblázatban a Margin számított oszlop minden sorára vonatkozóan számítson ki egy értéket (=) úgy, hogy kivonja a [-) értékeket a [TotalCost] oszlopból a [SalesAmount] oszlop értékeiből.
Vegyünk egy pillantást egy másik képlettípusra, amelyet egy mértékben használunk:
A képlet a következő szintaktikai elemeket tartalmazza:
- A mérték neve: Sum of Sales Amount. A mértékek képletei tartalmazhatják a mérték nevét, egy kettőspontot, majd a számítási képletet.
- Az egyenlőségjel operátor (=) a számítási képlet kezdetét jelzi. Számításkor eredményt ad vissza.
- A SZUM függvény összeadja az [ÉrtékesítésMennyiség] oszlopban lévő összes számot. A függvényekről később többet is megtudhat.
- Egy vagy több argumentum körül zárójel () áll. Minden függvényhez legalább egy argumentumra van szükség. Egy argumentum átad egy értéket egy függvénynek.
- A hivatkozott FactSales tábla.
- A hivatkozott oszlop [SalesAmount] a FactSales táblázatban. Ezzel az argumentummal a SZUM függvény tudja, hogy melyik oszlopban kell összesíteni a SZUM függvényt.
Ezt a képletet a következőképpen olvashatja ki:
Az Értékesítési összeg nevű mérték esetében számítsa ki (=) a Ténybeli értékesítés táblázat [Értékesítés] oszlopában lévő értékek összegét.
A kimutatás mezőlistájának értéklerakójába helyezve ez a mérték kiszámítja és visszaadja a kimutatás minden egyes cellája által definiált értékeket, ilyen lehet például a mobiltelefonok az USA-ban.
Figyelje meg, hogy ez a képlet eltér a Margin számított oszlophoz használttól. Külön bevezettük a SZUM függvényt. A függvények előre megírt képletek, amelyek megkönnyítik a számokkal, dátumokkal, időpontokkal, szöveggel stb. végzett összetett számításokat és módosításokat. A függvényekről később többet is megtudhat.
A korábbi Margin számított oszloptól eltérően az [ÉrtékesítésMennyisége] oszlopot a FactSales nevű tábla előzte meg, amelyhez az oszlop tartozik. Ezt nevezzük teljesen minősített oszlopnévnek, mivel tartalmazza a tábla nevével felölelő oszlopnevet. Az ugyanabban a táblázatban hivatkozott oszlopok esetében a táblázat nevét nem szükséges szerepeltetni a képletben. Így a sok oszlopra hivatkozó hosszú képletek rövidebbek és könnyebben olvashatók lesznek. Érdemes azonban mindig szerepeltetni a táblázat nevét a mértékképletekben, még akkor is, ha ugyanabban a táblázatban szerepel.
Megjegyzés
Ha egy tábla neve szóközöket, fenntartott kulcsszavakat vagy tiltott karaktereket tartalmaz, a táblanevet aposztrófok közé kell tenni. A táblázatneveket is idézőjelek közé kell tennie, ha a nevek az ANSI alfanumerikus karaktertartományán kívül eső karaktereket tartalmaznak, függetlenül attól, hogy az adott területi beállítás támogatja-e a karakterkészletet.
Nagyon fontos, hogy a képletek szintaxisa helyes legyen. A legtöbb esetben, ha a szintaxis nem megfelelő, a program szintaktikai hibát ad vissza. Más esetekben előfordulhat, hogy a szintaxis helyes, de a visszaadott értékek nem azok, amelyekre számított. A Power Pivot (és az SQL Server Data Tools) tartalmazza az IntelliSense funkciót, amellyel a megfelelő elemek kiválasztásának segítésével szintaktikailag helyes képleteket hozhat létre.
Hozzunk létre egy egyszerű képletet. Ez a feladat segít megérteni a képletszintaxist, és hogy a szerkesztőléc IntelliSense funkciója miként segítheti Önt.
Feladat: Egyszerű képlet létrehozása számított oszlophoz
- Ha még nem a Power Pivot ablakban van, kattintson az Excel menüszalagján a Power Pivot ablakra.
- A Power Pivot ablakában kattintson a FactSales táblára (lap).
- Görgessen a jobb szélső oszlophoz, majd az oszlopfejlécben kattintson az Oszlop hozzáadása elemre.
- Kattintson a Modelltervező ablak tetején látható szerkesztőlécre.
A kurzor ekkor megjelenik a szerkesztőlécen. A szerkesztőlécre beírhatja a számított oszlopok vagy mezők képletét.
Vessen egy pillantást a szerkesztőléctől balra található három gombra.
Amikor a kurzor aktív a szerkesztőlécen, az a három gomb aktiválódik. A bal szélső, az X gomb egyszerűen mégse gomb. Kattintson rá. A kurzor eltűnik a szerkesztőlécről, és a Mégse gomb és a pipa gomb sem lesz látható. Kattintson újra a szerkesztőlécre. A Mégse gomb és a pipa gomb most újra megjelenik. Ez azt jelenti, hogy készen áll a képlet beírására.
A pipa gomb a Képlet ellenőrzése gomb. Mindaddig nem sokat végez, amíg be nem ír egy képletet. Kicsit később visszatérünk rá.
Kattintson az Fx gombra. Látni fogja, hogy megjelenik egy új párbeszédpanel; a Függvény beszúrása párbeszédpanel. A Függvény beszúrása párbeszédpanel a legegyszerűbb módja a DAX-képletek bevitelének. Amikor kicsit később létrehozunk egy mértéket, hozzáadunk egy függvényt a képlethez, de egyelőre nincs szükség függvényre a számított oszlop képletében. Zárja be a Függvény beszúrása párbeszédpanelt. - A szerkesztőlécen írjon be egy egyenlőségjelet =, majd egy nyitó szögletes zárójelet [. Egy kis ablak jelenik meg a FactSales táblázat összes oszlopával. Ez az IntelliSense működés közben.
Mivel a számított oszlopok mindig az aktív táblában jönnek létre, nem szükséges, hogy az oszlop neve elé beírjam a táblázat nevét. Görgessen lefelé, és kattintson duplán a [SalesQuantity] elemre. Azt is megteheti, hogy a kívánt oszlopnévhez görget, majd lenyomja a Tab billentyűt.
A kurzor ekkor aktívvá válik az [ÉrtékesítésMennyiség] jobb oldalán. - Írjon be egy szóközt, majd egy kivonás műveleti jelét (mínuszjel), majd írjon be egy másik szóközt.
- Most írjon be egy másik nyitó szögletes zárójelet [. Ezúttal válassza a [ReturnQuantity] oszlopot, majd nyomja le az Enter billentyűt.
Ha hibát tapasztal, alaposan ellenőrizze a szintaxist. Ha szükséges, hasonlítsa össze a korábban ismertetett Margó számított oszlopban szereplő képlettel.
Miután a képlet befejezéséhez lenyomja az Enter billentyűt, a Power Pivot ablak alján látható állapotsoron megjelenik a Számítás szó. A művelet gyorsan elmegy, annak ellenére, hogy az imént számította ki új értékeket több mint hárommillió sorra. - Kattintson a jobb gombbal az oszlopfejlécre, és nevezze át az oszlopot NetSales névre.
Ennyi az egész! Létrehozott egy egyszerű, de nagyon hatékony DAX-képletet. A NetSales képlet a FactSales táblázat minden sorára kiszámít egy értéket úgy, hogy kivonja a [ReturnQuantity] oszlopban lévő értéket a [SalesQuantity] oszlopban szereplő értékből. Figyelje meg, hogy az imént azt mondtuk, hogy "Minden egyes sorhoz". Ez egy bepillantás a DAX egy másik nagyon fontos fogalmába; sorkörnyezet. A sorkontextusról később tudhat meg többet.
Amikor operátorokat ír be egy DAX-képletbe, azt nagyon fontos szem előtt tartani, az az adattípus az argumentumokban. Ha például az = 1 & 2 képletet írja be, a visszaadott érték "12" szöveges érték lesz. Ez azért van, mert az és (&) operátor szövegösszefűzésre szolgál. A DAX a következőképpen értelmezi ezt a képletet: Eredmény kiszámításához az 1 értéket szövegként veszi, és a 2 értéket hozzáadja szövegként. Ha most az = 1 + 2 értéket írja be, a DAX a következőképpen olvassa ki ezt a képletet: Eredmény kiszámításához vegye az 1 numerikus értéket, majd adja hozzá a 2 numerikus értéket. Az eredmény természetesen "3", egy számérték. A DAX az eredményül kapott értékeket a képletben használt operátor alapján számítja ki, nem pedig az argumentumban használt oszlopok adattípusa alapján. A DAX adattípusai nagyon fontosak, de kívül esnek a jelen rövid útmutató hatókörén. Ha többet szeretne megtudni a DAX-képletekben használható adattípusokról és operátorokról, olvassa el a DAX-referenciát (http://go.microsoft.com/fwlink/?LinkId=239769&clcid=0x409) a Books Online-ban.
Próbáljunk meg egy másikat. Ezúttal a képlet beírásával és az IntelliSense használatával hoz létre mértéket. Ne aggódjon sokat, ha nem érti teljesen a képletet. A legfontosabb itt az, hogy megtanulja, hogyan hozhat létre olyan képletet, amely több elemet együtt használ a helyes szintaxisban.
Feladat: Mértékképlet létrehozása
- A FactSales táblázatban kattintson egy üres cellára a számítási területen. Ez az üres cellák területe közvetlenül egy táblázat alatt a Power Pivot-ablakban.
- Írja be a szerkesztőlécen az Előző negyedévi értékesítés nevet.
- Írjon be egy egyenlőségjelet (=) a számítási képlet elkezdéséhez.
- Írja be az első néhány betűt a CAL függvénybe, 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.
- Írjon be egy nyitó zárójelet ( a CALCULATE függvénynek átadandó argumentumok elkezdéséhez.
Figyelje meg, hogy a nyitó zárójel beírása után az IntelliSense megmutatja a CALCULATE függvényhez szükséges argumentumokat. Az érveket egy kicsit megismerheti. - Írja be a FactSales táblázat első néhány betűjét, majd a legördülő listában kattintson duplán a FactSales[Sales] elemre.
- Írjon be egy vesszőt (,) az első szűrő megadásához, írja be a PRE függvényt, és kattintson duplán a PREVIOUSQUARTER függvényre.
A MEGELŐZŐ negyed függvény kijelölése után megjelenik egy másik nyitó zárójel, amely azt jelzi, hogy egy másik argumentumra van szükség; ezúttal a MEGELŐZŐ negyed függvényhez. - Írja be az első néhány Dim betűt, majd kattintson duplán a DimDate[DateKey] elemre.
- Zárja be mind a RÉSZLETELŐNEGYED függvénynek átadott argumentumot, mind a CALCULATE függvényt két záró zárójel beírásával :)).
Ezután így kell kinéznie a képletnek:
Előző negyedévi értékesítés:=SZÁMÍTÁS(TényÉrtékesítés[Értékesítés], PREVIOUSQUARTER(DimDate[DateKey])) - A képlet érvényesítéséhez kattintson a szerkesztőlécen lévő Képlet ellenőrzése gombra. Ha hibaüzenet jelenik meg, ellenőrizze a szintaxis minden elemét.
Megcsináltad! Az imént hozott létre egy mértéket a DAX használatával, ami nem is volt egyszerű. Ezzel a képlettel kiszámíthatja az előző negyedévre vonatkozó teljes értékesítést a kimutatásban vagy kimutatásdiagramban alkalmazott szűrőktől függően.
Az imént megismerkedett a DAX-képletek néhány fontos jellemzőjével. Ez a képlet először is két függvényt tartalmazott. Figyelje meg, hogy a PREVIOUSQUARTER függvény a CALCULATE 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 valaha is ennyi beágyazott függvényt tartalmaz. Egy ilyen képletet valójában nagyon bonyolult lenne létrehozni és hibakeresést végezni, de valószínűleg nem is lenne túl gyors.
A képletben szűrőket is használt. A szűrők leszűkítik a számításra kerülő adatokat. Ebben az esetben egy szűrőt jelölt ki argumentumként, amely valójában egy másik függvény. A szűrőkről később többet is megtudhat.
Végül a CALCULATE függvényt használta. Ez a DAX egyik leghatékonyabb függvénye. Amikor adatmodelleket készít és összetettebb képleteket hoz létre, valószínűleg sokszor használni fogja ezt a függvényt. A CALCULATE függvény ismertetése nem tartozik a jelen rövid útmutató hatókörébe, de ahogy egyre gyarapszik a DAX nyelvével kapcsolatos ismerete, fordítson rá külön figyelmet.
Megjegyzés
Ahhoz, hogy időintelligencia-függvényeket használhasson a DAX-képletekben, általában meg kell adnia egy egyedi dátumoszlopot a Megjelölés dátumtáblázatként párbeszédpanelen. A Contoso DAX Formula Samples.xlsx munkafüzetében a DimDate táblázat DateKey oszlopa van kijelölve egyedi dátumoszlopként.
Extra kredit
Felmerülhet a kérdés: "Melyik a legegyszerűbb DAX-képlet, amit létre tudok hozni?" Nos, a válasz erre az, hogy "a képlet, amelyet nem kell". Pontosan erre szolgál, ha szabványos aggregálási függvényt használ a mértékekben. Szinte minden adatmodellnek szüksége van az összesített adatok szűrésére és számítására. A korábban látható Sum of Sales Amount (Értékesítési összeg) mérték SZUM függvénye például egy adott oszlop összes számának összeadásához használható. A DAX számos más, értékeket összesítő függvényt is tartalmaz. Az AutoSzum funkcióval automatikusan hozhat létre képleteket szabványos összegzések használatával.
Többletkredit feladat: Mértékképlet létrehozása az AutoSzum funkcióval
- A FactSales táblában görgessen a ReturnQuantity oszlophoz, majd az oszlopfejlécre kattintva jelölje ki a teljes oszlopot.
- A Kezdőlap lap menüszalagjának Számítások csoportjában kattintson az AutoSzum gombra.
Kattintson az AutoSzum elem melletti lefelé mutató nyílra, majd az Átlag elemre (tekintse meg a többi használható szabványos aggregálási függvényt is).
A rendszer azonnal létrehoz egy új mértéket Average of ReturnQuantity (Average([ReturnQuantity]) néven, amelyet az =AVERAGE([ReturnQuantity]) képlet követ.
Hát nem volt egyszerű? Természetesen nem minden képlet lesz ilyen egyszerű. Az AutoSzum funkció használatával azonban gyorsan és könnyen létrehozhat képleteket a szokásos összegzési számítások használatával.
Ez elég jó ismereteket nyújt a DAX-képletekben használt szintaxisról. Megismerkedhetett néhány nagyszerű funkcióval is, ilyen például az IntelliSense és az AutoSzum, amelyek segítségével gyorsan, könnyen és pontosan hozhat létre képleteket. Természetesen sok mindent megtudhat a szintaxisról. További információk a DAX-referenciacikkben vagy az SQL Books Online-ban hasznos információk.
Szintaxis Gyorsteszt
- Mire jó ez a gomb a szerkesztőlécen?
- Mi veszi mindig körül az oszlopneveket a DAX-képletekben?
- Hogyan írhatna képletet a következőkre:
A DimProduct táblában a UnitMargin számított oszlop minden egyes sorára számítsa ki az értéket úgy, hogy kivonja az Egységköltség oszlopban lévő értékeket a Listaár oszlopban szereplő értékekből?
A válaszok a témakör végén találhatók.
Függvények
A függvények olyan előre definiált képletek, amelyek argumentumnak nevezett különleges értékek használatával számításokat hajtanak végre adott sorrendben vagy felépítésben. Az argumentumok lehetnek egyéb függvények, másik képlet, oszlophivatkozások, számok, szöveg, logikai értékek (például IGAZ vagy HAMIS) vagy állandók.
A DAX függvények alábbi kategóriáit foglalja magában: dátum- és idő-, információ-, logikai, matematikai, statisztikai, szöveges és időintelligencia-függvények. Ha ismeri az Excel-képletekben használt függvényeket, akkor a DAX számos függvénye Önhöz hasonlóan fog kinézni; A DAX függvényei azonban a következő módokon egyedülállóak:
- A DAX-függvények mindig teljes oszlopra vagy táblázatra hivatkoznak. Ha egy táblázatnak vagy oszlopnak csak bizonyos értékeit szeretné használni, szűrőket adhat a képlethez.
- Ha soronként kell testre szabnia a számításokat, a DAX olyan függvényeket tartalmaz, amelyek lehetővé teszik az aktuális sor vagy egy kapcsolódó érték argumentumként való használatát a környezettől függően változó számítások elvégzéséhez. A környezetről később tudhat meg többet.
- A DAX számos olyan függvényt tartalmaz, amely érték helyett táblázatot ad vissza. A táblázat nem jelenik meg, hanem más függvények bemeneteként szolgál. Lekérhet például egy táblázatot, majd megszámlálhatja a benne lévő értékeket, vagy dinamikus összegeket számíthat szűrt táblázatokra vagy oszlopokra vonatkozóan.
- A DAX számos időintelligencia-függvényt tartalmaz. Ezekkel a függvényekkel dátumtartományokat határozhat meg vagy jelölhet ki, valamint dinamikus számításokat végezhet ezek alapján. Összehasonlíthatja például párhuzamos időszakok összegeit.
Néha nehéz megállapítani, hogy mely függvényekre lehet szükség a képletekben. A Power Pivot beépülő modulban és az SQL Server Data Tools táblázatos modelltervezőjében megtalálható a Függvény beszúrása funkció, egy párbeszédpanel, amelyen kategóriák szerint választhat ki függvényeket, és rövid leírást ad az egyes függvényekről.
Hozzunk létre egy új képletet, amely tartalmaz egy függvényt, amelyet a Függvény beszúrása funkcióval választhat ki:
Feladat: Függvény hozzáadása képlethez a Függvény beszúrása paranccsal
- A FactSales táblázatban görgessen a jobb szélső oszlophoz, majd az oszlopfejlécben kattintson az Oszlop hozzáadása elemre.
- A szerkesztőlécen írjon be egy egyenlőségjelet (=).
- Kattintson a Függvény beszúrása gombra.
Ezzel megnyitja a Függvény beszúrása párbeszédpanelt. - A Függvény beszúrása párbeszédpanelen kattintson a Kategória kiválasztása listamezőre. Alapértelmezés szerint a Minden beállítás van kiválasztva, és az alábbiakban a Mind kategória összes függvénye látható. Ez sok függvény, ezért célszerű szűrni őket, hogy könnyebben megtalálhassa a keresett függvénytípust.
- Ebben a képletben olyan adatokat szeretne visszaadni, amelyek már léteznek egy másik táblában. Ehhez a Szűrő kategória egyik függvényét fogja használni. Kattintson a Szűrő kategóriára, majd a Függvény kiválasztása ablakban görgessen le, és kattintson duplán a RELATED függvényre. Kattintson az OK gombra a Függvény beszúrása párbeszédpanel bezárásához.
- Az IntelliSense segítségével megkeresheti és kijelölheti a DimChannel[ChannelName] oszlopot.
- Zárja be a képletet, majd nyomja le az Enter billentyűt.
- Miután a képlet befejezéséhez lenyomja az Enter billentyűt, a Power Pivot ablak alján látható állapotsoron megjelenik a Számítás szó. Most láthatja, hogy létrehozott egy új oszlopot a FactSales táblában a DimChannel tábla csatornaadataival.
- Nevezze át az oszlopot Csatorna névre.
A képletnek így kell kinéznie: =RELATED(DimChannel[ChannelName])
Az imént megismerkedett a DAX egy másik nagyon fontos függvényével, a RELATED függvénnyel. A RELATED függvény egy másik táblából ad vissza értékeket. A RELATED függvényt akkor használhatja, ha van kapcsolat az aktuálisan használt tábla és a megjeleníteni kívánt értékeket tartalmazó táblázat között. Természetesen a RELATED függvény rengeteg lehetőséget rejt magában. Ebben az esetben mostantól a FactSales táblában szerepeltetheti az egyes értékesítések értékesítési csatornáját. Mostantól elrejtheti a DimChannel-táblázatot a kimutatás mezőlistájában, így könnyebben navigálhat benne, és így csak a valóban szükséges információkat láthatja. A korábban ismertetett CALCULATE függvényhez hasonlóan a RELATED függvény is nagyon fontos, és valószínűleg sokszor használni fogja.
Mint látható, a DAX függvényeivel nagyon hatékony képleteket hozhat létre. Valójában csak a függvények alapjait érintettük. Ahogy fejlődik a DAX-kapcsolatos készsége, számos különböző függvényt tartalmazó képleteket fog létrehozni. Ha részletes információkat szeretne megtudni a DAX-függvényekről, tanulmányozza a DAX segédletét ismertető témakört.
Függvények gyorsteszt
- Mire hivatkozik mindig egy függvény?
- Tartalmazhat-e egy képlet több függvényt?
- Milyen kategóriájú függvényekkel szeretne két szöveges karakterláncot egyetlen karakterlánccá összefűzni?
A válaszok a témakör végén találhatók.
Környezet:
A környezet az egyik legfontosabb DAX-fogalom. A DAX kétféle környezetet használ; sor- és szűrőkörnyezet. Először a sorok kontextusát vesszük át.
Sorkörnyezet
A sorkontextusra a legegyszerűbben az aktuális sorként lehet tekinteni. Emlékszik például arra a Margó számított oszlopra, amelyet korábban látott a szintaxis megismerésekor? Az =[ÉrtékesítésiMennyiség] - [Összköltség] képlet a táblázat minden sorához kiszámít egy értéket a Margó oszlopban. Az egyes sorok értékeit két másik oszlop értékeiből számítja ki a rendszer: az [ÉrtékesítésMennyiség] és az [Összköltség] ugyanabban a sorban. A DAX ki tudja számítani a Margó oszlop egyes sorainak értékeit, mivel az alábbi környezettel rendelkezik: Minden sor esetében a [TotalCost] oszlop értékeit kivonja a [SalesAmount] oszlop értékeiből.
Az alábbi kijelölt cellában szereplő 49,54 Ft értéket úgy számítottuk ki, hogy a [TotalCost] oszlopban lévő 51,54 USD értéket kivontuk a [SalesAmount] oszlop 101,08 USD értékéből.
A sorkörnyezet nem csak számított oszlopokra vonatkozik. A sorkörnyezet akkor is alkalmazható, ha egy képlet olyan függvényt tartalmaz, amely szűrőket alkalmaz a táblázat egyetlen sorának azonosításához. A függvény természeténél fogva sorkörnyezetet alkalmaz a táblázat minden olyan sorára, amelyre szűr. Az ilyen típusú sorkörnyezet leggyakrabban mértékekre vonatkozik.
Szűrőkörnyezet
A szűrőkörnyezet egy kicsit nehezebben értelmezhető, mint a sorkontextus. A szűrőkörnyezet a legegyszerűbben a következő: Egy vagy több alkalmazott szűrő egy eredményt vagy értéket meghatározó számításban.
A szűrőkörnyezet nem létezik a sorkörnyezet helyett; inkább a sorkontextus mellett alkalmazandó. Ha például tovább szeretné szűkíteni a számításokban felvenni kívánt értékeket, alkalmazhat olyan szűrőkörnyezetet, amely nemcsak a sorok környezetét határozza meg, hanem az adott sorkontextusban is megad egy bizonyos értéket (szűrőt).
A szűrőkörnyezet könnyen látható a kimutatásokban. Ha például felveszi a TotalCost mezőt az Értékek területre, majd az Év és a Régió mezőt a sorhoz vagy az oszlopokhoz, 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észhalmazát.
Miért olyan fontos a szűrőkörnyezet a DAX számára? Míg a szűrőkörnyezet a kimutatásokban oszlop- és sorcímkék, illetve szeletelők hozzáadásával alkalmazható a legkönnyebben, a szűrőkörnyezet a DAX-képletekben is alkalmazható egy szűrő definiálásával (például ALL, RELATED, FILTER, CALCULATE, kapcsolatok szerint), illetve egyéb mértékek és oszlopok szerint. Vegyük például a következő képletet egy StoreSales (ÁruháziÉrtékesítés) nevű mértékben:
Nyilvánvaló, hogy ez a képlet összetettebb, mint néhány korábbi képlet. A képlet jobb megértéséhez azonban le kell bontani, ahogyan azt más képletek esetében is tettük.
A képlet a következő szintaktikai elemeket tartalmazza:
- A mérték neve: StoreSales, amelyet kettőspont :.
- Az egyenlőségjel operátor (=) a képlet kezdetét jelzi.
- A CALCULATE függvény egy kifejezést értékel ki argumentumként egy olyan környezetben, amelyet a megadott szűrők módosítanak.
- Egy vagy több argumentum körül zárójel () áll.
- Egy [Sales] mérték ugyanabban a táblában, mint egy kifejezés. Az Értékesítés mérték képlete a következő: =SZUM(Tényértékesítés[Értékesítés]).
- Az egyes szűrőket vessző (,) választja el egymástól.
- A hivatkozott oszlop és egy adott érték, DimChannel[ChannelName] ="Store", szűrőként.
Ez a képlet biztosítja, hogy csak a Sales mérték által definiált értékesítési értékek legyenek kiszámítva a DimChannel[ChannelName] oszlop azon soraihoz, amelyek a "Store" értéket tartalmazzák.
Ahogy elképzelhető, a szűrőkörnyezet egy képletben való definiálásának lehetősége óriási és hatékony lehetőséggel bír. Az, hogy egy kapcsolódó táblában csak egy adott értékre hivatkozhat, csak egy ilyen példa. Ne aggódjon, ha nem érti azonnal a szövegkörnyezetet. Ahogy saját képleteket hoz létre, jobban megérti a kontextust, és hogy az miért olyan fontos a DAX képletekben.
Környezetfüggő gyors teszt
- Mi a környezet két típusa?
- Mi az a szűrőkörnyezet?
- Mi az a sorkörnyezet?
A válaszok a témakör végén találhatók.
Összegzés
Most, hogy alapszintű ismereteket szerzett a DAX legfontosabb fogalmairól, elkezdhet saját maga létrehozni DAX-képleteket számított oszlopokhoz és mértékekhez. Bár a DAX megtanulása valóban bonyolult lehet, de számos forrás áll rendelkezésre. Miután néhányszor elolvasta ezt a témakört, és kipróbált néhány saját képlettel, megismerheti a DAX további fogalmait és képleteit, amelyek segíthetnek saját üzleti problémáinak megoldásában. A Power Pivot súgójában, az SQL Server Books Online-ban, tanulmányokban és blogokban a Microsoft és vezető üzletiintelligencia-szakértők blogjai állnak rendelkezésre. A DAX-erőforrásközpont wikiwebhelye (http://social.technet.microsoft.com/wiki/contents/articles/dax-resource-center.aspx) nagyszerű hely a kezdésre. A DAX (Data Analysis Expressions) referencia szintén nagyszerű forrás. Ne felejtse el menteni a Kedvencek közé.
A letölthető DAX in the BI Tabular Model tanulmány (http://go.microsoft.com/fwlink/?LinkID=237472&clcid=0x409) részletesebb áttekintést nyújt az itt bemutatott fogalmakról, valamint számos más speciális fogalmról és képletről. Ez a tanulmány is ugyanazt a Contoso DAX-mintamunkafüzetet használja Formulas.xlsx, ami már megvan.
Gyors teszt válaszok
Szintaxis:
- A Függvény beszúrása funkció megnyitása.
- Szögletes zárójelek [].
- =[Egységár] - [Egységköltség]
Funkciók:
- Egy táblázat és egy oszlop.
- Igen. Egy képlet legfeljebb 64 beágyazott függvényt tartalmazhat.
- Szöveges függvények.
Kontextus:
- Sor- és szűrőkörnyezet.
- Egy vagy több szűrő egy olyan számításban, amely egyetlen értéket határoz meg.
- Az aktuális sor.