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.


LuckyTemplates tipp: Az első N munkanap összehasonlítása

LuckyTemplates tipp: Az első N munkanap összehasonlítása

Tekintse meg Brian ezt a LuckyTemplates tippjét arról, hogyan hasonlíthatja össze dinamikusan az első N munkanapot a power query segítségével.

Power Apps modellvezérelt alkalmazások: környezetbeállítás és navigáció

Power Apps modellvezérelt alkalmazások: környezetbeállítás és navigáció

Ismerje meg a Power Apps modellvezérelt alkalmazásokat, a környezet beállítását és a hatékony navigálást.

Power Apps modellvezérelt alkalmazások: webhelytérképek és működésük

Power Apps modellvezérelt alkalmazások: webhelytérképek és működésük

Tudjon meg többet a Power Apps modellvezérelt alkalmazásokban a webhelytérképeken való munkavégzésről, és fedezze fel a különböző bonyolultságokat, és hogyan kezelheti ezeket.

Mutasd a legjobb vagy legalsó eredményeket a LuckyTemplates rangsor használatával

Mutasd a legjobb vagy legalsó eredményeket a LuckyTemplates rangsor használatával

Ebben az oktatóanyagban a LuckyTemplates rangsorolásában fogunk merülni, a RANKX funkció segítségével, hogy diagnosztizáljuk a legjobb vagy legalacsonyabb eredményeket az ügyfélbázison belül.

Power Apps-környezet beállítása: Csatlakozzon a OneDrive-hoz és a Google Drive-hoz

Power Apps-környezet beállítása: Csatlakozzon a OneDrive-hoz és a Google Drive-hoz

Tanulja meg, hogyan csatlakozhat a OneDrive-hoz és a Google Drive-hoz Power Apps környezetben, hogy valódi hatást gyakoroljon az üzletmenetére.

Rendezés Legend LuckyTemplates Feature bemutató és áttekintése

Rendezés Legend LuckyTemplates Feature bemutató és áttekintése

A LuckyTemplates 2021. novemberi frissítéseivel foglalkozó minisorozat részeként szeretnék foglalkozni a Sort Legend LuckyTemplates funkcióval a mai blogban.

Eszköztippek a LuckyTemplatesben | Új modern vizuális eszköztippek áttekintése

Eszköztippek a LuckyTemplatesben | Új modern vizuális eszköztippek áttekintése

A LuckyTemplates új eszköztippjeiről szeretnék beszélni – az új Modern Visual eszköztippekről. Szerintem nagyon jó lehet benne.

LuckyTemplates adatmodell: Átfogó áttekintés

LuckyTemplates adatmodell: Átfogó áttekintés

Ebből az oktatóanyagból megtudhatja, milyen fontos dolgokat kell figyelembe venni a LuckyTemplates adatmodell beállításakor.

Power Automate Environment: Beállítás és áttekintés

Power Automate Environment: Beállítás és áttekintés

Fedezze fel, hogyan állíthat be fiókot a Microsoft Power Automate szolgáltatásban, és fedezze fel a Power Automate környezet által biztosított szolgáltatásokat.

Rangsorelemzés a LuckyTemplates-ben: speciális információk kombinált adatkészletekből

Rangsorelemzés a LuckyTemplates-ben: speciális információk kombinált adatkészletekből

Tanulja meg, hogyan kaphat speciális rangsorelemzést a LuckyTemplates jelentéseiben a RANKX és más funkciók és technikák használatával.