Első N munkanap újralátogatva – DAX kódolási nyelvi megoldás

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ó.

Első N munkanap újralátogatva – DAX kódolási nyelvi megoldás

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.

Első N munkanap újralátogatva – DAX kódolási nyelvi megoldás

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.

Első N munkanap újralátogatva – DAX kódolási nyelvi megoldás

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.

Első N munkanap újralátogatva – DAX kódolási nyelvi megoldás

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.

Első N munkanap újralátogatva – DAX kódolási nyelvi megoldás

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.

Első N munkanap újralátogatva – DAX kódolási nyelvi megoldás

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.

Első N munkanap újralátogatva – DAX kódolási nyelvi megoldás

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.

Első N munkanap újralátogatva – DAX kódolási nyelvi megoldás

A Teljes értékesítés mértéke a második táblázathoz van csatolva, majd az első táblára vonatkozik.

Első N munkanap újralátogatva – DAX kódolási nyelvi megoldás

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.

Első N munkanap újralátogatva – DAX kódolási nyelvi megoldás

Másoljuk a TOPN részt, és hozzunk létre egy újat. Ne feledje, hogy a DAX-lekérdezések EVALUATE karakterekkel kezdődnek.

Első N munkanap újralátogatva – DAX kódolási nyelvi megoldás

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.

Első N munkanap újralátogatva – DAX kódolási nyelvi megoldás

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.

Első N munkanap újralátogatva – DAX kódolási nyelvi megoldás

A @Sales oszlop csak hozzáadja a teljes értékesítést a megfelelő szűrőkontextuson belül a TOPN táblához.

Első N munkanap újralátogatva – DAX kódolási nyelvi megoldás

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.

Első N munkanap újralátogatva – DAX kódolási nyelvi megoldás

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.

Első N munkanap újralátogatva – DAX kódolási nyelvi megoldás

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.

Első N munkanap újralátogatva – DAX kódolási nyelvi megoldás

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.

Első N munkanap újralátogatva – DAX kódolási nyelvi megoldás

Az alján található oszlopdiagram is dinamikusan igazodik, hogy tükrözze az általunk végrehajtott változtatásokat.

Első N munkanap újralátogatva – DAX kódolási nyelvi megoldás

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 .

Első N munkanap újralátogatva – DAX kódolási nyelvi megoldás

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.

Első N munkanap újralátogatva – DAX kódolási nyelvi megoldás

Ezután belépünk a vizualizációba, a cím feltételes formázásához, és kattintsunk az fx gombra .

Első N munkanap újralátogatva – DAX kódolási nyelvi megoldás

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.

Első N munkanap újralátogatva – DAX kódolási nyelvi megoldás

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.


Mi az a Power Query & M Language: Részletes áttekintés

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.

Oldalszámozott jelentés készítése: Szövegek és képek hozzáadása

Oldalszámozott jelentés készítése: Szövegek és képek hozzáadása

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.

A SharePoint automatizálási szolgáltatás | Bevezetés

A SharePoint automatizálási szolgáltatás | Bevezetés

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.

Oldja meg az adatelemzési kihívást a LuckyTemplates Accelerator segítségével

Oldja meg az adatelemzési kihívást a LuckyTemplates Accelerator segítségével

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!

Összesítések futtatása a LuckyTemplates alkalmazásban a DAX segítségével

Összesítések futtatása a LuckyTemplates alkalmazásban a DAX segítségével

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.

A LuckyTemplates Dax-változói állandóak: mit jelent ez?

A LuckyTemplates Dax-változói állandóak: mit jelent ez?

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.

LuckyTemplates lejtődiagram: Áttekintés

LuckyTemplates lejtődiagram: Áttekintés

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.

LuckyTemplates színes témák az egységes vizualizációkhoz

LuckyTemplates színes témák az egységes vizualizációkhoz

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.

Átlag kiszámítása LuckyTemplatesben: Hétköznapi vagy hétvégi eredmények elkülönítése a DAX segítségével

Átlag kiszámítása LuckyTemplatesben: Hétköznapi vagy hétvégi eredmények elkülönítése a DAX segítségével

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.

LuckyTemplates Theming | LuckyTemplates Desktop Standard Theming

LuckyTemplates Theming | LuckyTemplates Desktop Standard Theming

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ó.