Aikatieto DAX:ssa: Aloitusajan valitseminen dynaamisesti

Tässä blogikirjoituksessa käsittelemme joitain vaikeita aikatiedon ongelmia, erityisesti niitä, jotka johtuvat viikon tarkkuudesta ja ongelmista, joita voi aiheuttaa viikkojen epäsäännöllinen lukumäärä vuodessa. Käytämme poikkeamia saadaksemme tarkan aikatiedon DAX:ssa.

Meillä on tänään sinulle mielenkiintoinen skenaario. Tämä tuli esiin muutaman kerran äskettäin LuckyTemplates-foorumilla. Ihmiset halusivat ottaa visuaalisen kuvan (joka voi olla viivakaavio tai pylväskaavio) ja muuttaa sitä dynaamisesti aloituspäivänä. Voit katsoa tämän opetusohjelman koko videon tämän blogin alaosasta.

Aikatieto DAX:ssa: Aloitusajan valitseminen dynaamisesti

Tässä tapauksessa käytimme samaa tietojoukkoa, jota käytimme öljytynnyrin keskimääräiselle spot-hinnalle . Sen sijaan, että aloittaisimme aina tammikuun alusta, halusimme klikata visuaalista kuvaa, muuttaa sen alkamispäivämääräksi, mutta näyttää aina yhden vuoden tiedot.

Sisällysluettelo

Esimerkkiskenaariot aikatiedosta DAXissa

On useita syitä, miksi saatat haluta käyttää tätä tekniikkaa. Voit käyttää tätä, jos sinulla on mittari, jota säädellään jatkuvasti uudelleen sen laskentatavan suhteen. Haluat ehkä näyttää vain tiedot uudelleensäätöjaksolta eteenpäin.

Toinen syy käyttää tätä on, jos haluat visualisoida tämän animoidulla tavalla. Tämä periaatteessa ottaa tietosi ja näyttää ne dynaamisesti, kun napsautat toisto-oikeutta.

Aikatieto DAX:ssa: Aloitusajan valitseminen dynaamisesti

Tässä visualisoinnissa voimme muuttaa aloituspäivää kuukausittain näyttääksemme, kuinka se muuttuu 12 kuukauden aikana ajan kuluessa. Tämä on mielenkiintoinen ja hyödyllinen visualisointi erilaisiin liiketoimintatapauksiin, mutta teoriassa se edustaa myös useita DAX- ja datamallinnukseen liittyviä avainkysymyksiä.

Siirrytään LuckyTemplatesiin ja katsotaan ensin tietomallimme. Tämä on todella yksinkertainen tietomalli, jossa on laajennettu päivämäärätaulukko ja spot-hintataulukko yhdistettynä päivämääriin.

Aikatieto DAX:ssa: Aloitusajan valitseminen dynaamisesti

Siirtymien käyttäminen aikatietoa varten DAX:ssa

Yksi asia, jonka parissa työskentelemme, ovat kompensaatiot . Laajennetun päivämäärätaulukon siirtymät lasketaan dynaamisesti. Aina kun raportti joko päivitetään tai avataan, se käy läpi M-koodin. Esimerkiksi kuukausisiirrossa se määrittää nykyisen kuukauden arvon 0, edellisen kuukauden -1:n ja kahdelle kuukaudelle -2:n. Tulevaisuudessa se antaa seuraavalle kuukaudelle +1 ja tulevalle kahdelle kuukaudelle +2.

Tämä on yksinkertainen konsepti, mutta uskomattoman tehokas, kun käsittelet DAX:n aikatietoa ja työskentelet kuukausien , neljännesten ja viikkojen kanssa . Jos et käytä offsetia, se tekee laskelmistasi toisinaan melkoisen monimutkaisia.

Poikkeamien käyttäminen tarkoittaa jatkuvan numerosarjan käyttöä, jossa kuukausi taaksepäin on aina -1 ja kuukaudessa eteenpäin +1 riippumatta siitä, missä vaiheessa olet.

Kumiankkastrategian toteuttaminen aikatietoa varten DAXissa

Aiemmin olen puhunut kumista , joka ilmaisee strategiasi ääneen ennen kuin aloitat DAX:n kirjoittamisen.

Aikatieto DAX:ssa: Aloitusajan valitseminen dynaamisesti

Ajattelen ääneen, kuinka käsittelen tätä kuukausikontekstissa käyttämällä aikatietoa DAXissa. Aloittaisin jotain valitun vuoden ja kuukauden perusteella ja valitsisin ne käyttämällä irrotettua taulukkoa, koska jos ajattelee niin joka toinen valinta liittyy vuosien ylittämiseen (tammikuuta lukuun ottamatta).

Oletetaan, että haluamme 12 kuukautta maaliskuusta alkaen, ja seuraavana vuonna saamme vähintään kaksi kuukautta. Jos käytämme yhdistettyä viipalointilaitetta, voimme suodattaa vain kyseisen vuoden, emmekä voi suodattaa seuraavaan vuoteen.

Poikkeamien kerääminen aloituspäivästä

Tehdään tämä yhdistetyllä taulukolla sekä kuukaudelle että vuodelle. Ensin meidän on korjattava ensimmäinen offset, joka koskee aloituspäivää.

Ja sitten haluamme siirtää tätä siirtymää eteenpäin 12 kuukaudella ja tarkastella sitten vain päivämääriä, jotka ovat tämän siirtymäjoukon sisällä. Näytän sinulle, miltä se näyttää DAXissa.

Kuukausivaihtelun laskeminen

Tämä on mittamme Within Range Monthly -arvossa, jossa valitsemme vuoden (jonka korjasimme irrotettujen vuosien taulukosta) ja kuukausimme (jonka korjasimme irrotettujen kuukausien taulukosta).

Meillä on myös tämä toinen parametri, jossa jos valintaa ei tehdä, se on oletuksena tammikuu. Tämä parametri on ensisijaisesti tarkoitettu vain virheenkorjaustarkoituksiin.

Aikatieto DAX:ssa: Aloitusajan valitseminen dynaamisesti

Alku- ja loppukuukauden erojen laskeminen

Tarkastellaan aloituskuukausipoikkeamaa laskemalla MAX-poikkeama. Poistamme kaikki suodattimet päivämäärätaulukosta ja suodatamme valitun kuukauden ja vuoden mukaan. Kullekin kuukaudelle tulee olla vain yksi siirto, joka vastaa kyseistä kuukautta ja vuotta.

Aikatieto DAX:ssa: Aloitusajan valitseminen dynaamisesti

Siitä lähtien voimme ottaa loppukuukauden poiston , joka on vain aloituskuukausiero + 11 kuukautta.

Aikatieto DAX:ssa: Aloitusajan valitseminen dynaamisesti

Ja sitten tarkastelemme jokaista valittua päivämäärää ja määritämme, kuuluuko se aloituskuukauden ja loppukuukauden siirtymän sisälle. jos se osuu tähän ajanjaksoon, annamme sille 1 ja jos ei, annamme sille 0.

Aikatieto DAX:ssa: Aloitusajan valitseminen dynaamisesti

Jos palaamme visuaalissamme kuukausinäkymään, voimme nähdä Within Range -visuaalin, jonka olemme asettanut yhtä suureksi kuin yksi. Joten se näyttää vain ne kuukaudet alusta loppuun. Jos esimerkiksi napsautamme helmikuuta, näemme helmikuusta tammikuuhun.

Aikatieto DAX:ssa: Aloitusajan valitseminen dynaamisesti

Viikkovälin laskeminen

Katsotaan, miltä tämä näyttää viikoittain. Visuaalinen alkaa aluksi hyvin ja jatkuu viikosta 1 viikolle 52. Toistaiseksi hyvin.

Aikatieto DAX:ssa: Aloitusajan valitseminen dynaamisesti

Mutta jos napsautamme muita vuosia vuosileikkurissa, voimme nähdä 52. viikon, kun taas joillakin on 53. viikko, mikä aiheuttaa paljon ongelmia. Tästä esimerkistä näet, että ongelma alkaa ilmetä.

Meillä on alkamisjakso vuosi 2020 ja viikko 15 , mutta päättymisjakso on vuosi 2021 ja viikko 13 vuoden 2021 ja viikon 14 sijaan .

Aikatieto DAX:ssa: Aloitusajan valitseminen dynaamisesti

Jos palaamme takaisin viikkoon 1, voimme nähdä, että se alkaa hyvin, mutta päättyy viikolla 52. Jos katsomme viikon 53 laskentaa tästä, niin vuosien 2020 ja 2021 maksimiviikkoluku on 53 viikkoa. Tämä ei toimi viikoittaisella tarkkuudella.

Aikatieto DAX:ssa: Aloitusajan valitseminen dynaamisesti

Katsotaan mitä voimme tehdä saadaksemme tämän toimimaan. Meidän on korjattava DAX-laskenta tässä osassa:

Aikatieto DAX:ssa: Aloitusajan valitseminen dynaamisesti

Tämä johtuu siitä, että joissakin tapauksissa 51 on oikein, kun vuodessa on vain 52 viikkoa, mutta vuonna, jossa on 53 viikkoa, se jättää viimeisen ajanjakson pois. Juuri tämän näimme viikkojen ajan dynaamisessa visuaalisessa kuvassa, jossa laskelma poisti viimeisen ajanjakson vuosina 2020 ja 2021.

Korjataksemme tämän siirrymme Within Range Weekly Wrong -mittaan, joka näyttää itse asiassa yksinkertaisemmalta kuin aikaisempi mitta. Meillä oli aloituspoikkeama ja laskettiin maksimipoikkeama. Sitten poistimme suodattimen päivämäärät ja asetimme suodattimen valitulle viikolle ja valitulle vuodelle olettaen, että tämä johtaisi oikeaan siirtymään.

Aikatieto DAX:ssa: Aloitusajan valitseminen dynaamisesti

Mutta tämä ei toimi, koska sillä ei ole väliä, käytätkö maksimi- vai minimisiirtymää. Teemme vain aggregaattorin ympärille, jotta emme laita paljaata saraketta CALCULATE-lauseeseen.

Mutta jos palaamme tähän ISO-viikkonumeroon , voimme nähdä, että vuosi ja viikko eivät määritä yksiselitteisesti viikoittaista siirtymää tällä ensimmäisellä jaksolla.

Aikatieto DAX:ssa: Aloitusajan valitseminen dynaamisesti

Keksin luodinkestävän tavan tehdä tämä. Voit käyttää MIN-arvoa, mutta on järkevämpää luoda tämä Week1 Offset -mitta. Saadaksemme viikon 1 poikkeaman, käsittelemme viikkoa 2, koska sitä ei koskaan jaeta. Riippumatta siitä, onko vuodessa 52 vai 53 viikkoa, viikko 2 pysyy muuttumattomana.

Aikatieto DAX:ssa: Aloitusajan valitseminen dynaamisesti

Tässä laskelmassa suodatamme alas viikkoon 2 saadaksemme erotuksen. Ja sitten kun saamme viikon 2 poikkeaman, vähennämme siitä yhden. Tämä antaa meille yksiselitteisesti viikon 1 offsetin. Tämä ratkaisee ongelmamme.

Alueen sisällä viikoittainen laskeminen

Ja sitten palaamme takaisin vaihteluvälin viikoittaiseen mittaamme ja kirjoitamme IF-lausekkeen, jossa jos sadonkorjuunumero on viikolle 1, lasketaan viikon yksi poikkeama. Jos se ei ole viikko 1, laskemme vain aloitusviikkosiirtymän, kuten teimme edellisessä kuukausilaskennassa.

Aikatieto DAX:ssa: Aloitusajan valitseminen dynaamisesti

Ja sitten loppuviikon poikkeama on alkavan viikon siirtymä + viikon maksiminumero, joka voi olla joko 52 tai 53. Sitten vähennämme vain 1, jotta aloitussiirtymää ei lasketa kahdesti.

Aikatieto DAX:ssa: Aloitusajan valitseminen dynaamisesti

Voimme tehdä saman konstruktion, jota käytimme kuukausivälille suodattaaksemme viikkoja, jolloin kaikki, mikä on alun ja lopun poikkeaman välissä, saa 1:n ja kaikki, mikä ei saa 0:ta.

Sitten aiomme sijoittaa Within Range Weekly -mitan suodatinruutuun. Kaikki tarkistetaan ja näyttää täsmälleen oikealta.

Aikatieto DAX:ssa: Aloitusajan valitseminen dynaamisesti

Voimme napsauttaa toistoakselia ja suorittaa viikon tarkkuuden. Voimme nähdä, että se toimii oikein, kuten se toimi kuukauden kontekstissa.

Johtopäätös

Tämä on melko syvä sukellus aikatietoon DAX:ssa, jossa keskustelimme siitä, kuinka voimme ratkaista joitain viikkonumeroihin liittyviä ongelmia. Toivon, että pidit tästä opetusohjelmasta hyödyllisenä ja tarjosi sinulle työkalupakkiisi lisätyökaluja, kun olet tekemisissä ongelmallisen viikon tilanteen kanssa.

Jos pidit tämän opetusohjelman sisällöstä, älä unohda tilata LuckyTemplates-TV-kanava. Meillä on jatkuvasti valtava määrä sisältöä minulta ja useilta sisällöntuottajilta, jotka kaikki ovat omistautuneet parantamaan tapaa, jolla käytät LuckyTemplatesia ja Power Platformia.


Päivämäärätaulukon luominen LuckyTemplatesissa

Päivämäärätaulukon luominen LuckyTemplatesissa

Ota selvää, miksi LuckyTemplatesissa on tärkeää pitää oma päivämäärätaulukko ja opi nopein ja tehokkain tapa tehdä se.

LuckyTemplates mobiiliraportointivinkkejä ja -tekniikoita

LuckyTemplates mobiiliraportointivinkkejä ja -tekniikoita

Tämä lyhyt opetusohjelma korostaa LuckyTemplates-mobiiliraportointiominaisuutta. Näytän sinulle, kuinka voit kehittää raportteja tehokkaasti mobiililaitteille.

Ammattimainen palveluanalyysiraportit LuckyTemplatesissa

Ammattimainen palveluanalyysiraportit LuckyTemplatesissa

Tässä LuckyTemplates Showcase -esittelyssä käymme läpi raportteja, jotka näyttävät ammattitaitoisen palveluanalytiikan yritykseltä, jolla on useita sopimuksia ja asiakkaiden sitoumuksia.

Microsoft Power Platform -päivitykset | Microsoft Ignite 2021

Microsoft Power Platform -päivitykset | Microsoft Ignite 2021

Käy läpi tärkeimmät Power Appsin ja Power Automaten päivitykset sekä niiden edut ja vaikutukset Microsoft Power Platformiin.

Yleiset SQL-funktiot: Yleiskatsaus

Yleiset SQL-funktiot: Yleiskatsaus

Tutustu joihinkin yleisiin SQL-toimintoihin, joita voimme käyttää, kuten merkkijono, päivämäärä ja joitain lisätoimintoja tietojen käsittelyyn tai käsittelyyn.

LuckyTemplates-mallin luominen: opas ja vinkkejä

LuckyTemplates-mallin luominen: opas ja vinkkejä

Tässä opetusohjelmassa opit luomaan täydellisen LuckyTemplates-mallin, joka on määritetty tarpeidesi ja mieltymystesi mukaan.

Kenttäparametrit ja pienet kertoimet LuckyTemplatesissa

Kenttäparametrit ja pienet kertoimet LuckyTemplatesissa

Tässä blogissa esittelemme, kuinka kerrostat kenttäparametreja pienillä kerroilla uskomattoman hyödyllisten näkemysten ja visuaalien luomiseksi.

LuckyTemplates-sijoitus ja mukautettu ryhmittely

LuckyTemplates-sijoitus ja mukautettu ryhmittely

Tässä blogissa opit käyttämään LuckyTemplates-sijoitus- ja mukautettuja ryhmittelyominaisuuksia näytetietojen segmentoimiseen ja luokitteluun kriteerien mukaan.

LuckyTemplatesissa näytetään vain tiettyyn päivämäärään asti kumulatiivinen kokonaissumma

LuckyTemplatesissa näytetään vain tiettyyn päivämäärään asti kumulatiivinen kokonaissumma

Tässä opetusohjelmassa käsittelen tiettyä tekniikkaa, jolla voit näyttää kumulatiivisen kokonaissumman LuckyTemplates-visuaaleissasi vain tiettyyn päivämäärään asti.

Bullet Charts: Kehittyneet mukautetut visuaalit LuckyTemplatesille

Bullet Charts: Kehittyneet mukautetut visuaalit LuckyTemplatesille

Opi luomaan ja mukauttamaan Bullet-kaavioita LuckyTemplatesissa, joita käytetään pääasiassa suorituskyvyn mittaamiseen suhteessa tavoitteeseen tai edellisiin vuosiin.