Időintelligencia a DAX-ban: Hogyan válasszuk ki dinamikusan a kezdő időszakot

Ebben a blogbejegyzésben az időintelligencia néhány problémás problémájával foglalkozunk, különös tekintettel a heti részletességből adódó problémákra, illetve azokra a problémákra, amelyeket az egy évben a hetek szabálytalan száma okozhat. Eltolásokat használunk, hogy pontos időintelligenciát állítsunk elő a DAX-ban.

Érdekes forgatókönyvünk van ma az Ön számára. Ez mostanában néhányszor felmerült a LuckyTemplates fórumon. Az emberek azt akarták, hogy készítsenek egy vizualitást (ez lehet vonaldiagram vagy oszlopdiagram), és dinamikusan variálják a kezdési dátumon. Az oktatóanyag teljes videóját a blog alján tekintheti meg.

Időintelligencia a DAX-ban: Hogyan válasszuk ki dinamikusan a kezdő időszakot

Ebben az esetben ugyanazt az adatkészletet használtuk, amelyet az olaj hordónkénti átlagos azonnali áránál dolgoztunk . Ahelyett, hogy mindig január elején kezdenénk, azt szerettük volna, ha rákattintunk a vizualizációra, módosíthatjuk egy másik kezdési dátumra, de mindig egy év adatait mutatjuk.

Tartalomjegyzék

Az időintelligencia mintaforgatókönyvei a DAX-ban

Számos oka lehet annak, hogy miért érdemes ezt a technikát alkalmazni. Ezt akkor használhatja, ha olyan mérőszámmal rendelkezik, amelyet folyamatosan módosítanak a számítási módja szempontjából. Előfordulhat, hogy csak az újraigazítás időszakának adatait szeretné megjeleníteni.

Egy másik ok ennek használatára, ha animált módon szeretné megjeleníteni. Ez alapvetően átveszi az adatait, és dinamikusan megjeleníti azokat, amint rákattint a lejátszási hozzáférésre.

Időintelligencia a DAX-ban: Hogyan válasszuk ki dinamikusan a kezdő időszakot

Ebben a vizualizációban hónapról hónapra módosíthatjuk a kezdési dátumot, hogy megmutassuk, hogyan változik az idő múlásával egy 12 hónapos időszakban. Ez egy érdekes és hasznos kép a különböző üzleti esetekhez, de elméletileg számos kulcsfontosságú kérdést is képvisel a DAX-szal és az adatmodellezéssel kapcsolatban.

Lépjünk a LuckyTemplates oldalra, és először nézzük meg az adatmodellünket. Ez egy nagyon egyszerű adatmodell, kiterjesztett dátumtáblázattal és a dátumokhoz kapcsolódó azonnali ártáblázattal .

Időintelligencia a DAX-ban: Hogyan válasszuk ki dinamikusan a kezdő időszakot

Eltolások használata az időinformációhoz a DAX-ban

Az egyik dolog, amin dolgozni fogunk, az az ellentételezés . A kiterjesztett dátumtáblázat eltolásait dinamikusan számítja ki. Minden alkalommal, amikor a jelentést frissítik vagy megnyitják, az M kódon megy keresztül. Például a havi eltolásnál az aktuális hónaphoz 0, az előző hónaphoz -1, a két hónaphoz pedig -2 hozzárendeli. A jövőre nézve a következő hónapra +1-et, a jövő két hónapjára pedig +2-t rendel.

Ez egy egyszerű koncepció, de hihetetlenül hatékony, ha a DAX időintelligenciájával foglalkozik, és hónapokkal , negyedévekkel és hetekkel dolgozik . Ha nem használ eltolást, az időnként meglehetősen bonyolulttá teszi a számításokat.

Az eltolások használata azt jelenti, hogy folyamatos számsort használunk, ahol egy hónapra visszafelé mindig -1, egy hónapra előre pedig mindig +1, függetlenül attól, hogy az év melyik szakaszában tartózkodik.

A gumikacsa stratégia megvalósítása az időintelligencia érdekében a DAX-ban

Korábban már beszéltem a „gumi ducking” -ről , amely a stratégia hangos megfogalmazása, mielőtt elkezdené írni a DAX-ot.

Időintelligencia a DAX-ban: Hogyan válasszuk ki dinamikusan a kezdő időszakot

Hangosan gondolkodom, hogyan fogom ezt kezelni havi kontextusból a DAX időintelligenciájával. Én a kiválasztott év és hónap alapján kezdenék valamit, és azokat szétválasztott táblával választanám ki, mert ha jobban belegondolunk, minden második kiválasztás évek átlépésével jár (január kivételével).

Tegyük fel, hogy márciustól kezdődően 12 hónapot akarunk, a következő évben pedig legalább két hónapot akarunk. Ha csatlakoztatott szeletelőt használunk, akkor csak arra az évre tudunk szűrni, és a következő évre már nem.

Az eltolások betakarítása a kezdő dátumtól

Tegyük ezt egy összefüggő táblázattal a hónapra és az évre is. Először is be kell takarítanunk az első eltolást, amely a kezdő dátummal foglalkozik.

Ezután 12 hónappal előre szeretnénk tolni ezt az eltolást, és csak azokat a dátumokat nézzük, amelyek ezen eltolásokon belül vannak. Hadd mutassam meg, hogyan néz ki ez a DAX-ban.

A havi tartomány kiszámítása

Ez az In Range Monthly mérőszámunk , ahol kiválasztjuk az évünket (amelyet a leválasztott év táblázatból gyűjtöttünk be) és a hónapot (amit a leválasztott hónapok táblázatából gyűjtöttünk be).

Van egy másik paraméterünk is, ahol ha nincs kiválasztva, akkor alapértelmezés szerint január lesz. Ez a paraméter elsősorban csak hibakeresési célokat szolgál.

Időintelligencia a DAX-ban: Hogyan válasszuk ki dinamikusan a kezdő időszakot

A kezdő és záró hónap eltolásainak kiszámítása

Nézzük meg a kezdő havi eltolást a MAX eltolás kiszámításával. Eltávolítjuk az összes szűrőt a dátumtáblázatból, és leszűrjük a kiválasztott hónapra és évre. Minden hónaphoz csak egy eltolás legyen, amely megfelel az adott hónapnak és évnek.

Időintelligencia a DAX-ban: Hogyan válasszuk ki dinamikusan a kezdő időszakot

Ettől kezdve vehetjük a záró havi beszámítást , ami csak a kezdő hónap eltolása + 11 hónap.

Időintelligencia a DAX-ban: Hogyan válasszuk ki dinamikusan a kezdő időszakot

Ezután megvizsgáljuk az egyes kiválasztott dátumokat, és meghatározzuk, hogy beleesik-e a kezdeti hónap eltolásába és a hónap végi eltolásába. ha ebbe az időszakba esik, 1-et adunk, ha nem, akkor 0-t.

Időintelligencia a DAX-ban: Hogyan válasszuk ki dinamikusan a kezdő időszakot

Ha visszatérünk a havi nézethez a vizuálunkban, akkor az In Range vizualitást láthatjuk, amelyet eggyel egyenlőnek állítottunk be. Tehát csak azokat a hónapokat mutatja az elejétől a végéig. Például, ha a februárra kattintunk, akkor februártól januárig láthatjuk.

Időintelligencia a DAX-ban: Hogyan válasszuk ki dinamikusan a kezdő időszakot

A heti tartomány kiszámítása

Nézzük meg, hogyan néz ki ez heti szempontból. A vizualitás kezdetben rendben indul, és az 1. héttől az 52. hétig tart. Eddig minden rendben.

Időintelligencia a DAX-ban: Hogyan válasszuk ki dinamikusan a kezdő időszakot

De ha az évszeletelőben rákattintunk a többi évre, akkor az 52. hetet láthatjuk, míg egyeseknél az 53. hetet, ami sok problémát vet fel. Ebből a példából láthatja, hogy a probléma kezd megnyilvánulni.

Nálunk a 2020-as év és a 15. hét kezdő időszaka van , de a záró időszak a 2021-es év és a 13. hét a 2021-es év és a 14. hét helyett .

Időintelligencia a DAX-ban: Hogyan válasszuk ki dinamikusan a kezdő időszakot

Ha visszamegyünk az 1. hétre, akkor láthatjuk, hogy rendben indul, de az 52. héttel ér véget. Ha itt megnézzük az 53. heti számítást, akkor 2020-ra és 2021-re a maximális hétszám 53 hét. Ez nem fog működni a heti részletességnél.

Időintelligencia a DAX-ban: Hogyan válasszuk ki dinamikusan a kezdő időszakot

Lássuk, mit tehetünk, hogy ez működjön. Itt kell javítanunk a DAX számítást ebben a részben:

Időintelligencia a DAX-ban: Hogyan válasszuk ki dinamikusan a kezdő időszakot

Ez azért van így, mert bizonyos esetekben az 51 a helyes, amikor csak 52 hét van egy évben, de abban az évben, ahol 53 hét van, ez az utolsó időszakot kihagyja. Pontosan ezt láttuk hetekig a dinamikus látványban, ahol a számítás eltávolította az utolsó időszakot 2020-ban és 2021-ben.

Ennek kijavításához ugorjunk a Tartományon belüli heti hibás mértékre, amely valójában egyszerűbbnek tűnik, mint a korábbi mérték. Volt egy kezdő offset mértékünk, és kiszámoltuk a maximális eltolást. Ezután eltávolítottuk a szűrőt a dátumokról, majd a kiválasztott hétre és kiválasztott évre ráhelyeztük a szűrőt azzal a feltételezéssel, hogy ez a megfelelő eltoláshoz vezet.

Időintelligencia a DAX-ban: Hogyan válasszuk ki dinamikusan a kezdő időszakot

De ez nem működik, mert nem számít, hogy max. vagy minimális eltolást használ. Mindössze annyit teszünk, hogy körbeburkolunk egy aggregátort, hogy ne tegyünk csupasz oszlopot egy CALCULATE utasításba.

De ha visszamegyünk ide az ISO WeekNumber- hez , láthatjuk, hogy az év és a hét száma nem határoz meg egyértelműen heti eltolást az első időszakban.

Időintelligencia a DAX-ban: Hogyan válasszuk ki dinamikusan a kezdő időszakot

Erre egy golyóálló módszert találtam ki. Használhatja a MIN értéket, de célszerűbb létrehozni ezt az 1. heti eltolás mértékét. Az 1. hét eltolása érdekében a 2. héttel foglalkozunk, mert soha nem osztják fel. Függetlenül attól, hogy 52 vagy 53 hét van az évben, a 2. hét érintetlen marad.

Időintelligencia a DAX-ban: Hogyan válasszuk ki dinamikusan a kezdő időszakot

Ebben a számításban a 2. hétre szűrünk, hogy megkapjuk az eltolást. És ha egyszer megkapjuk azt a 2. heti eltolást, csak levonunk belőle egyet. Ez egyértelműen megadja nekünk az 1. hét eltolását. Ez végül megoldja a problémánkat.

Heti tartományon belüli kiszámítása

Ezután térjünk vissza az In Range Weekly méréshez, és írjunk egy IF utasítást, ahol ha a betakarítási szám az 1. hétre vonatkozik, akkor kiszámítjuk az első heti eltolást. Ha nem az 1. hét, akkor csak a kezdő hét eltolását számítjuk ki, ahogy az előző havi számításnál is tettük.

Időintelligencia a DAX-ban: Hogyan válasszuk ki dinamikusan a kezdő időszakot

És akkor a záró hét eltolása lesz a kezdő hét eltolása + a maximális hét száma, amely lehet 52 vagy 53. Ezután csak 1-et vonunk ki, hogy ne számoljuk kétszer a kezdő eltolást.

Időintelligencia a DAX-ban: Hogyan válasszuk ki dinamikusan a kezdő időszakot

Megtehetjük ugyanazt a konstrukciót, mint amit a havi tartománynál használtunk a hetek szűrésére, ahol minden, ami az eleje és a vége eltolás közé esik, 1-et kap, és minden, ami nem kap 0-t.

Ezután a tartományon belüli heti mérést a szűrőpanelbe helyezzük. Mindent ellenőriznek, és pontosan úgy néz ki.

Időintelligencia a DAX-ban: Hogyan válasszuk ki dinamikusan a kezdő időszakot

A lejátszási tengelyre kattintva futtathatjuk a heti részletességet. Láthatjuk, hogy megfelelően működik, ugyanúgy, mint a hónap kontextusában.

Következtetés

Ez egy meglehetősen mélyrepülés a DAX időintelligenciájába, ahol megbeszéltük, hogyan kezelhetjük a hétszámmal kapcsolatos problémákat. Remélem, hasznosnak találta ezt az oktatóanyagot, és néhány további eszközt is biztosított az eszköztárában, ha problémás heti helyzettel küzd.

Ha tetszett az oktatóanyagban szereplő tartalom, kérjük, ne felejtsen el feliratkozni a LuckyTemplates TV-csatornára. Rengeteg tartalom jön ki folyamatosan tőlem és egy sor tartalomkészítőtől, mindannyian elkötelezettek a LuckyTemplates és a Power Platform használatának javításáért.


Dátumtáblázat létrehozása a LuckyTemplates alkalmazásban

Dátumtáblázat létrehozása a LuckyTemplates alkalmazásban

Tudja meg, miért fontos egy dedikált dátumtáblázat a LuckyTemplatesben, és ismerje meg ennek leggyorsabb és leghatékonyabb módját.

LuckyTemplates mobil jelentéskészítési tippek és technikák

LuckyTemplates mobil jelentéskészítési tippek és technikák

Ez a rövid oktatóanyag kiemeli a LuckyTemplates mobil jelentési funkcióját. Megmutatom, hogyan készíthet hatékony jelentéseket mobileszközökön.

Professzionális szolgáltatáselemzési jelentések LuckyTemplatesben

Professzionális szolgáltatáselemzési jelentések LuckyTemplatesben

Ebben a LuckyTemplates bemutatóban olyan jelentéseket tekintünk át, amelyek professzionális szolgáltatáselemzést mutatnak be egy olyan cégtől, amely több szerződéssel és ügyfél-elkötelezettséggel rendelkezik.

Microsoft Power Platform frissítések | Microsoft Ignite 2021

Microsoft Power Platform frissítések | Microsoft Ignite 2021

Tekintse át a Power Apps és a Power Automate legfontosabb frissítéseit, valamint azok előnyeit és következményeit a Microsoft Power Platform számára.

Gyakori SQL-függvények: Áttekintés

Gyakori SQL-függvények: Áttekintés

Fedezzen fel néhány gyakori SQL-függvényt, amelyeket használhatunk, például a karakterláncot, a dátumot és néhány speciális függvényt az adatok feldolgozásához vagy manipulálásához.

LuckyTemplates sablonok létrehozása: útmutató és tippek

LuckyTemplates sablonok létrehozása: útmutató és tippek

Ebből az oktatóanyagból megtudhatja, hogyan hozhatja létre a tökéletes LuckyTemplates sablont, amely az Ön igényeinek és preferenciáinak megfelelően van konfigurálva.

Mezőparaméterek és kis többszörösek a LuckyTemplatesben

Mezőparaméterek és kis többszörösek a LuckyTemplatesben

Ebben a blogban bemutatjuk, hogyan lehet a mezőparamétereket kis többszörösekkel rétegezni, hogy hihetetlenül hasznos betekintést és látványelemeket hozzon létre.

LuckyTemplates rangsor és egyéni csoportosítás

LuckyTemplates rangsor és egyéni csoportosítás

Ebből a blogból megtudhatja, hogyan használhatja a LuckyTemplates rangsorolási és egyéni csoportosítási funkcióit a mintaadatok szegmentálására és kritériumok szerinti rangsorolására.

A LuckyTemplatesben csak egy meghatározott dátumig összesített összeg látható

A LuckyTemplatesben csak egy meghatározott dátumig összesített összeg látható

Ebben az oktatóanyagban egy konkrét technikát fogok bemutatni, hogyan jelenítheti meg a kumulatív összeget csak egy adott dátumig a LuckyTemplates vizualizációjában.

Bullet Charts: speciális egyéni látványelemek a LuckyTemplates számára

Bullet Charts: speciális egyéni látványelemek a LuckyTemplates számára

Ismerje meg, hogyan hozhat létre és testreszabhat Bullet diagramokat a LuckyTemplates alkalmazásban, amelyeket főként a teljesítmény mérésére használnak a célhoz vagy az előző évekhez képest.