DAX-viikottaiset laskelmat – LuckyTemplates-aikatietoongelmia

Tämän päivän opetusohjelmassa annan joitakin tekniikoita ja vinkkejä DAX:n viikoittaisen tarkkuuden aiheuttamien yleisten ongelmien ratkaisemiseen aikatietolaskelmissa. Voit katsoa tämän opetusohjelman koko videon tämän blogin alaosasta.

Tein äskettäin opetusohjelman edellisen viikon arvojen hankkimisesta LuckyTemplatesissa. Siitä lähtien minulla on ollut useita kysymyksiä liittyen aikatietoon ja erityisesti liittyen DAX-viikkoarvoihin. Se ei ole yllättävää, koska viikot ovat todella huonoiten käyttäytyviä rakeita aikatiedon alalla.

Kuukausien tapauksessa sinulla on aina 12 kuukautta vuodessa. Neljännesten tapauksessa sinulla on aina neljä neljännestä. Viikot ovat erilaisia, koska viikossa on seitsemän päivää ja vuodessa 52 viikkoa – eli 364 päivää. Joten sinulla on se ylimääräinen päivä hengailla siellä. Karkausvuosina sinulla on kaksi ylimääräistä päivää.

Joten, se päätyy itse asiassa joidenkin vuosien aikana ISO-viikkonumeron numerointijärjestelmän perusteella siihen, että joskus 52 viikkoa, joskus 53 viikkoa. Viikko 53 on se, joka aiheuttaa eniten ongelmia.

Sisällysluettelo

Viikoittaisen DAX-laskennan aikatietoon liittyvät ongelmat

Tässä esimerkissä käytän kokonaishintaa. Summien avulla on helpompi visualisoida ja puhua.

DAX-viikottaiset laskelmat – LuckyTemplates-aikatietoongelmia

Tässä tapauksessa haluamme näyttää kullekin vuodelle rivin viikolle 53 riippumatta siitä, oliko viikko 53 tuona vuonna vai ei. Näet siis, että vuosina 2018 ja 2019 ei ole viikkoa 53, mutta vuonna 2020 on. Haluamme, että se on johdonmukainen, jotta 53. rivi olisi joka vuosi. Mutta silloin mittari olisi tyhjä niiltä vuosilta, joina ei ollut 53. vuotta.

Yksi yleisimmistä tavoistamme on näyttää kohteet, joissa ei ole tietoja, ja varmistaa, että se on päällä. Tässä tapauksessa se on päällä, mutta se ei auta, koska se toimii, kun sinulla on fyysinen rivi, mutta siihen ei ole liitetty tietoja. Tässä tapauksessa meillä ei ole edes riitaa.

DAX-viikottaiset laskelmat – LuckyTemplates-aikatietoongelmia

Tekniikat kuten käyttöätai Poista suodattimet eivät toimi, koska mitään ei ole poistettavaa. Tuon rivin suodatinta ei vain ole olemassa. Ja niin, kysymys kuuluu, kuinka lisäämme tuon rivin jokaiseen vuoteen, jolloin sitä ei ole? Ja sitten tästä tulee todella tietomallinnusongelma.

Yksi niistä asioista, joita voimme mahdollisesti tehdä, on siirtyä lumihiutalejärjestelmään, jossa suodatamme päivämäärätaulukon jollakin, joka pakottaa tuon 53. viikon visuaalistamme joka vuosi. Tämä toiminto tulee mieleen.

DAX-viikottaiset laskelmat – LuckyTemplates-aikatietoongelmia

CROSSJOINia käytetään yhdistämään kaksi kenttää, joilla voi olla tai ei ole suhdetta. Heillä ei tarvitse olla suhdetta toisin kuin useimmilla tai, tai muita taulukkotoimintoja.

Tässä tapauksessa CROSSJOIN ottaa kaksi saraketta ja luo näiden kahden sarakkeen jokaisen yhdistelmän riippumatta siitä, onko sellainen tietojoukossa vai ei. Juuri sitä me haluamme.

Meidän on luotava taulukko sarakkeesta. CROSSJOIN ottaa kaksi taulukkoa ja sitten ARVOT ISO-viikkonumerolla, ja yhdistämme ne vain yhteen. Se antaa meille 53 viikkoa joka vuosi.

Ja sitten lisäämme taulukkoon kolmannen sarakkeen. Voisimme tehdä tämän Power Queryssä, mutta on vain helpompi näyttää logiikka DAXissa. Se, mitä teemme täällä, on, että otamme ja yhdistämme vuoden yhdysviivalla ja sitten viikon numerolla, jotta meillä on avainkenttä liittääksemme sen Päivämäärät-taulukkoon.

DAX-viikottaiset laskelmat – LuckyTemplates-aikatietoongelmia

Tässä on kuitenkin tehtävä hieman enemmän työtä, koska avainkenttä Päivämäärät-taulukossa toimii siten, että se on nelinumeroinen vuosi yhdysviiva ja sitten kaksinumeroinen viikko. Joten tapauksissa, joissa ISO-viikkonumero on kaksinumeroinen, voimme vain tehdä yksinkertaisen ketjutuksen. Tapauksissa, joissa se on yksi numero, meidän on otettava vuosiluku ja ketjutettava se sitten yhdysviivalla, sitten alussa olevalla nollalla ja sitten viikon numerolla.

Kun olemme saaneet sen, voimme ottaa sen taulukon tietomallissa ja löytää Viikko ja vuosi -sarakkeen. Sitten liitymme niiden joukkoon yksi-moneen suhteen. Haluan aina ottaa tämän vaihtoehdon käyttöön Kiinnitä liittyvät kentät kortin yläosaan, jotta voimme nähdä sen heti kun tarkistamme sen.

DAX-viikottaiset laskelmat – LuckyTemplates-aikatietoongelmia

Jos palaamme visuaaliseen, meidän on vaihdettava rivejä. Vuosi ja viikko -luvun sijasta haluamme käyttää CROSSJOIN-taulukon vuosi- ja viikkonumeroa. Ja nyt meillä on 53. viikko vuonna 2018 tyhjällä ja 53. viikko vuonna 2019 tyhjällä. Vuonna 2020 meillä on todellinen luku, koska sillä on viikko 53.

DAX-viikottaiset laskelmat – LuckyTemplates-aikatietoongelmia

Voisimme lopettaa tähän, paitsi että olemme nyt siirtyneet pois Star Schema -mallista. Aina kun siirryt pois Star Schemasta LuckyTemplatesissa, siirryt yleisesti parhaana käytäntönä pidetyn kentän ulkopuolelle.

Ja niinpä Snowflake Schemalle se ei ole valtava rikkomus. On tapauksia, joissa saatat ehdottomasti haluta käyttää sitä, mutta jos voit välttää sen, yritä. Se vähentää päällekkäisyyksiä, mutta ei välttämättä kokoa. Sen avulla voit käyttää suoria laskentamittareita, mutta siinä on suorituskykyongelmia ja mahdollisia käytettävyysongelmia, mikä lisää DAX-monimutkaisuutta. Se estää sinua rakentamasta hierarkioita eri taulukoiden välillä, ja luultavasti ongelmallisin on, että se voi todella sotkea kykysi synkronoida viipaleita eri kenttien välillä.

Joten vaikka tämä ratkaisee ongelman, se tekee sen tavalla, joka ei ole hienoa. Katsotaan voimmeko tehdä tämän parempaa. Siirrytään toiseen tietomalliin. Tässä mallissa olen ottanut täsmälleen samat tiedot, päivämäärät ja spot-hinnan, mutta tällä kertaa olen poistanut CROSSJOIN-taulukon. Se on edelleen olemassa, mutta se ei ole yhdistetty.

DAX-viikottaiset laskelmat – LuckyTemplates-aikatietoongelmia

Mutta jos katsomme DAXia, huomaamme, että se on täsmälleen sama DAX, joka loi taulukon toisessa raportissa. Joten sen sijaan, että yhdistäisimme sen fyysiseen suhteeseen ja sitten rikkoisimme tähtikaaviota ja muuttaisimme sen lumihiutaleskeemaksi, voimme ylläpitää tähtikaaviota ja käyttää vain virtuaalista suhdetta.

DAX-viikottaiset laskelmat – LuckyTemplates-aikatietoongelmia

Tätä varten käytämme toimintoa nimeltä. Se luo tämän suhteen taulukoiden välille, mutta tekee sen virtuaalisesti. Teemme sen käyttämällä, koska aiomme muuttaa kontekstia. Tässä tapauksessa konteksti liittyy suhteeseen. Meillä on siis kokonaishintamme, ja sitten meillä on TREATAS. Meidän on muutettava tämä sarake taulukoksi.

Ja sitten meillä on vuosi ja viikko -kenttä, joka on avain, jonka loimme. Olemme yhdistäneet sen virtuaalisesti päivämäärätaulukon Viikko & Vuosi -kohtaan. Joten nyt meillä on tuo Crossjoint-taulukko, joka suodattaa päivämäärät-taulukon samalla tavalla kuin fyysisen suhteen aikana, mutta tähtikaaviota rikkomatta.

DAX-viikottaiset laskelmat – LuckyTemplates-aikatietoongelmia

Voimme nyt ottaa ja pudottaa tuon kokonaishinnan TREATASin matriisiin, ja näemme täsmälleen samat kokonaissummat. Tällä tavalla olemme tehneet sen häiritsemättä tietomalliamme ja aiheuttamatta haittoja, joista puhuimme lumihiutalekaavion yhteydessä.

DAX-viikottaiset laskelmat – LuckyTemplates-aikatietoongelmia




Johtopäätös

Tässä opetusohjelmassa olen näyttänyt sinulle pari tapaa käsitellä DAX-viikkolaskentaongelmaa LuckyTemplatesissa. Yksi niistä on CROSSJOINin käyttäminen, mutta sillä on joitain haittoja. Toinen tapa on käyttää TREATASia, luoda virtuaalinen suhde ja olla rikkomatta Star Schema -lähestymistapaa.

Se on yksi tekniikka, joka on varsin hyödyllinen viikon 53 ongelman käsittelyssä. Toivottavasti pidit siitä hyödyllisenä. Haluan tietää ajatuksesi tästä. Kerro minulle alla olevissa kommenteissa.

Kaikki parhaat,


Kuinka asentaa DAX Studio & Tabular Editor LuckyTemplatesissa

Kuinka asentaa DAX Studio & Tabular Editor LuckyTemplatesissa

Opi lataamaan ja asentamaan DAX Studio ja Tabular Editor 3 ja miten ne määritetään käytettäväksi LuckyTemplatesissa ja Excelissä.

LuckyTemplates -muotokartan visualisointi tilaanalyysiin

LuckyTemplates -muotokartan visualisointi tilaanalyysiin

Tämä blogi sisältää Shape Map -visualisoinnin tilaanalyysiä varten LuckyTemplatesissa. Näytän sinulle, kuinka voit käyttää tätä visualisointia tehokkaasti sen ominaisuuksien ja elementtien kanssa.

LuckyTemplatesin talousraportointi: tulosten kohdentaminen malleihin jokaisella rivillä

LuckyTemplatesin talousraportointi: tulosten kohdentaminen malleihin jokaisella rivillä

Tässä opetusohjelmassa esittelen ainutlaatuisen idean talousraportoinnista, joka allokoi tulokset LuckyTemplatesin sisällä olevien taulukkopohjien ennalta määrittämiseen.

DAX-mittaukset LuckyTemplatesissa käyttämällä mittahaaroitusta

DAX-mittaukset LuckyTemplatesissa käyttämällä mittahaaroitusta

Luo DAX-suureita LuckyTemplatesissa käyttämällä olemassa olevia suureita tai kaavoja. Tätä kutsun mittahaaroitustekniikaksi.

Tehokkain toimintopuhelu LuckyTemplatesissa

Tehokkain toimintopuhelu LuckyTemplatesissa

Tässä blogissa tutustu LuckyTemplates-tietojoukkoon, tehokkaimpaan funktiokutsuun, joka tuo tuhansia M- ja DAX-funktioita sormiesi ulottuville.

Datamallinnustekniikat DAX-mittausten järjestämiseen

Datamallinnustekniikat DAX-mittausten järjestämiseen

Tämän päivän opetusohjelmassa jaan muutamia datamallinnustekniikoita DAX-mittausten järjestämiseksi paremmin tehokkaamman työnkulun aikaansaamiseksi.

LuckyTemplates Financial Dashboard: Täydelliset taulukon mukautusvinkit

LuckyTemplates Financial Dashboard: Täydelliset taulukon mukautusvinkit

LuckyTemplates on loistava työkalu talousraportointiin. Tässä on opetusohjelma räätälöityjen taulukoiden luomisesta LuckyTemplates-talouden hallintapaneelillesi.

Power Queryn kielivirran parhaat käytännöt

Power Queryn kielivirran parhaat käytännöt

Tässä opetusohjelmassa keskustellaan Power Query Language Flowsta ja siitä, kuinka se voi auttaa luomaan sujuvan ja tehokkaan dataraportin.

LuckyTemplates mukautetut kuvakkeet | PBI-visualisointitekniikka

LuckyTemplates mukautetut kuvakkeet | PBI-visualisointitekniikka

Keskustelen yhdestä suosikkitekniikoistani mukautettujen LuckyTemplates-kuvakkeiden ympärillä, joka käyttää mukautettuja kuvakkeita dynaamisella tavalla LuckyTemplates-visuaaleissa.

LuckyTemplates -taulukoiden luominen UNION & ROW -funktiolla

LuckyTemplates -taulukoiden luominen UNION & ROW -funktiolla

Tässä blogissa näytän sinulle, kuinka voit luoda LuckyTemplates-taulukoita käyttämällä kaavaa, joka yhdistää UNION-funktion ja ROW-funktion.