Mi az a Power Query & M Language: Részletes áttekintés
Ez az oktatóanyag áttekintést nyújt a Power Query szerkesztőről és az M nyelvről a LuckyTemplates asztalon.
Vessünk még egy pillantást a cikkben tárgyalt problémára, amely dinamikusan hasonlította össze minden hónap első N munkanapját. Ez a probléma egy LuckyTemplates-tag kérdésén alapult a fórumunkon, ahol dinamikusan meg akarta nézni és összehasonlítani az adott hónap első 5, 10, 15 és 20 számlázható napját (a nem hétvégéket és a nem ünnepnapokat) az adott hónaphoz képest. az előző hónapban.
A power query használata helyett egy DAX kódolási nyelvi megoldást dolgozunk ki. Az oktatóanyag teljes videóját a blog alján tekintheti meg.
Az első videóban egy power query megoldást találtam ki a probléma megoldására. Ekkor azonban az egyik LuckyTemplates szakértőnk, Antriksh Sharma egy zseniálisan hatékony intézkedéssel állt elő, amelybe szintén érdemes belemerülni. Megbeszélünk néhány technikát, amelyet egy intézkedés kidolgozásakor használt, amelyek további eszközöket biztosítanak a DAX eszköztárában.
Minden bizonnyal jót tett nekem és néhány más szakértőnek is, akik megvizsgálták ezt. Az összehasonlítható munkanapok hónapok közötti összehasonlítása általában véve értékes minta, amely számos helyzetben használható.
Merüljünk el a power query-ben, és nézzük meg, mit csinált itt Antriksh. Megvan a hónap és év , az összes értékesítés és végül az összes értékesítés N munkanapra vonatkozóan , amelyeket az általunk kifejlesztett mi lenne, ha paraméter alapján választottunk ki power lekérdezéssel.
Antriksh egészen más megközelítést alkalmazott, amikor egy megdöbbentően rövid intézkedést alkalmazott az egész probléma megoldására. Az első dolog, amit ezzel kapcsolatban észrevettem, a parancs használata volt.
Ez egy DAX funkció, amelyet nem nagyon használok, de tökéletesen illeszkedik az ilyen típusú problémákhoz. Ha megnézzük az SQL BI DAX útmutatót, akkor az azt mondja, hogy a GENERATE függvény egy táblafüggvény, amely két különböző táblát használ bemenetként, majd a CROSS APPLY SQL parancs megfelelőjét használja.
Tehát vesz egy alaptáblát (Table1), és azon iterál, majd vesz egy második táblakifejezést, és kiértékeli azt az első tábla minden sorához, majd visszatér a táblához kimenetként.
Vegyük fel Antriksh mértékét, és dobjuk be a táblázatba. Láthatjuk, hogy pontosan ugyanazt az eredményt adja, mint a power query megoldás, amit legutóbb. Tehát ez jó, és elég jól érvényesíti mindkét intézkedést.
Vegyük szét ezt a mértéket. Az itt alkalmazott első szűrő a Dátumok[IsBusinessDay] = TRUE. Ez kiveszi az összes nem hétvégi és nem ünnepi dátumot a kiterjesztett dátumtábla IsBusinessDay mezője alapján.
Sokat beszélünk erről a -ban, ahol azt is végigjártuk, hogyan kössük ezt az ünnepi asztalunkra.
Ennek érdekessége valóban a két táblázatbemenetben rejlik. Az első táblázat csak egy oszlopos táblázat a Dátum táblázat Hónap és év mezőjében.
De a második táblázatban az érdekes dolgok történnek. Antriksh a-t használt, majd a dinamikus paraméterünket használta a TOPN sorainak számaként.
A Teljes értékesítés mértéke a második táblázathoz van csatolva, majd az első táblára vonatkozik.
Tartalomjegyzék
Egy összetett intézkedés megértése a DAX kódolási nyelv használatával
Az egyik legegyszerűbb módja annak, hogy kitaláljuk, mit csinál egy ilyen összetett mérték, ha belép a Táblázatszerkesztőbe . Vessünk egy pillantást erre a kifejezésre, és kitaláljuk, mit csinál ez a TOPN kifejezés először.
Másoljuk a TOPN részt, és hozzunk létre egy újat. Ne feledje, hogy a DAX-lekérdezések EVALUATE karakterekkel kezdődnek.
Amikor beillesztjük a TOPN részt, látni fogjuk, hogy ez az első 5 dátumot veszi ki az értékesítési rendelések táblázatából. A TOPN-ban van egy táblázat, amely az értékesítési táblán belüli összes rendelési dátum értékét tartalmazza.
Ez a TOPN függvény veszi a mi lenne, ha paraméter értékét (amely ebben az esetben 5), és alkalmazza azt az értékesítési rendelés dátuma mezőben. Ezután a szűrőkontextuson belül az első 5 dátumot a mező alapján növekvő sorrendben lehívja.
Tekintettel arra, hogy nincs további szűrőkörnyezet, ez csak az első 5 dátumot veszi ki a teljes táblázatból.
A @Sales oszlop csak hozzáadja a teljes értékesítést a megfelelő szűrőkontextuson belül a TOPN táblához.
Eddig megvan a Hónap & Év első táblázata, az eladási táblázatból az első N dátum TOPN-jának második táblázata, majd az ehhez kapcsolódó összes eladás.
A GENERATE tábla használata DAX kódolási nyelven
Nézzük meg, mit csinál ez a GENERATE tábla. Visszaugrunk a Táblázatszerkesztőbe, és létrehozunk egy új DAX-lekérdezést.
Kezdjük, mint mindig az EVALUATE-nél, illesszük be a kód LÉTREHOZÁS részét, és kattintsunk az 5-re.
Láthatjuk, hogy az első tábla minden soránál iterál és csatlakozik a @Sales függvénnyel összefüggésben kiértékelt TOPN tábla 5 sorához.
Április első 5 munkanapja, május első 5 munkanapja, június első 5 munkanapja telt el, és így tovább, amíg az első táblázat végére nem ér.
Pontosan erre van szükségünk, és most már viszonylag egyszerűvé válik ezen értékek összeadása. Megvan az eredmény (ami a GENERATE eredmények táblázatváltozója), majd összegeznünk kell a @Sales függvényt.
A kontextuson belül most összegezzük az első 5 munkanapot áprilisban, az első 5 munkanapot májusban, és így tovább, amíg el nem érjük a teljes 23 737 430 USD-t, ebben az esetben nincs összefüggésben a működési hónap és év. .
Ez összegzi a teljes @Sales oszlopot, és pontosan ugyanazt az összeget kapja, mint a power query megoldásunkban.
Látható, hogy ha a szeletelőt 10-re állítjuk, dinamikusan ugyanazokat az eredményeket kapjuk a DAX kódolási nyelvvel, mint a power lekérdezésnél.
Az alján található oszlopdiagram is dinamikusan igazodik, hogy tükrözze az általunk végrehajtott változtatásokat.
Az intézkedés címének dinamikus beállítása
Van még egy további trükk, amit meg akartam mutatni. Létrehozhat egy dinamikus korrekciót a mi lenne, ha paraméterén, és dinamikusan kötheti egy mértékcímhez.
Például, ha a felül lévő szeletelőt 15-re változtatjuk, akkor dinamikusan módosítja az alul lévő mérőszám nevét Minden hónap első 15 munkanapján Összes értékesítésre .
Van egy egyszerű módja ennek a DAX-ban a használatával. Alapvetően csak három húrt veszünk. Az első a Total Sales for First , majd összefűzi azt az értékkel, amelyet a mi lenne, ha paraméterből gyűjtöttünk össze, majd csak köti a cím többi részéhez.
Ezután belépünk a vizualizációba, a cím feltételes formázásához, és kattintsunk az fx gombra .
A mezőérték alapján formázzuk, és kiválasztjuk azt a dinamikus címmértéket. Ez megváltoztatja a mi lenne, ha paraméter kiválasztását.
Következtetés
Jelenleg egy teljes megoldásunk van DAX kódolási nyelvet használva. Megbeszéltük ennek egy igazán kreatív és hatékony módját a GENERATE funkció használatával. Szeretném megköszönni Antriksh-nek, hogy megosztotta velünk ragyogó DAX tudását. Sokat tanultam a DAX megoldása során, és remélem, te is így tettél.
Ez az oktatóanyag áttekintést nyújt a Power Query szerkesztőről és az M nyelvről a LuckyTemplates asztalon.
Ismerje meg, hogyan hozhat létre oldalszámozott jelentést, hogyan adhat hozzá szövegeket és képeket, majd exportálhatja a jelentést különböző dokumentumformátumokba.
Ismerje meg, hogyan használhatja a SharePoint automatizálási funkcióját munkafolyamatok létrehozására, és segít a SharePoint-felhasználók, -könyvtárak és -listák mikrokezelésében.
Fejlessze jelentéskészítési készségeit, ha csatlakozik egy adatelemzési kihíváshoz. Az Accelerator segítségével LuckyTemplates szuperfelhasználóvá válhatsz!
Ismerje meg, hogyan számíthatja ki a futó összegeket a LuckyTemplates programban a DAX segítségével. Az összesítések futtatása lehetővé teszi, hogy ne ragadjon le egyetlen egyéni eredménynél sem.
Ismerje meg a változók fogalmát a DAX-ban a LuckyTemplates-en belül, és a változók hatásait a mérőszámok kiszámítására.
Tudjon meg többet a LuckyTemplates Slope diagram nevű egyéni vizualizációról, amely egyetlen vagy több mérőszám növekedésének/csökkenésének megjelenítésére szolgál.
Fedezze fel a LuckyTemplates színtémáit. Ezek elengedhetetlenek ahhoz, hogy jelentései és vizualizációi zökkenőmentesen nézzenek ki és működjenek.
Az átlag kiszámítása a LuckyTemplates alkalmazásban számos módon elvégezhető, hogy pontos információkat kapjon üzleti jelentéseihez.
Nézzük meg a Standard LuckyTemplates Theming témakört, és tekintsünk át néhány olyan funkciót, amely magában a LuckyTemplates Desktop alkalmazásban található.