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.
Tässä blogiviestissä tarkastelemme LuckyTemplates-foorumilla esitettyä kysymystä ja käytämme DAX-kielen LuckyTemplates-tekniikkaa sen ratkaisemiseen. Jos haluat seurata ja ladata tiedostoja, käy LuckyTemplates-foorumilla ja siirry osoitteeseen . Voit katsoa tämän opetusohjelman koko videon tämän blogin alaosasta.
Selvittääksemme skenaarion, jonka aiomme kattaa, meillä on esimerkkinä yksinkertainen taulukko. Ensimmäisessä sarakkeessa on taloustaso 1 . Toisessa sarakkeessa on päivämäärä, jonka nimi on Valmis. Viimeisessä sarakkeessa on taloudellisen tason ja valmistumispäivän yhdistelmä, jolle annamme nimen Tulo .
Sitten meillä on leikkuri päivämäärälle ja asiakkaan nimelle .
Haluamme tehdä tietyn ajanjakson aikana tunnistaa kolme parasta päivämäärää, jotka eivät ole nolla. Ja sitten noilla kolmella suurimmalla päivämäärällä haluamme tunnistaa taloudellisen tason.
Toimenpiteen ensimmäisessä versiossa listasin päivämäärät, jotka ovat pienempiä kuin 29.4.2021, jolloin meillä on jonkin verran tuloja.
Ja näinä päivinä haluamme tunnistaa taloudelliset tasot, jotka ovat tuottaneet jonkin verran tuloja. Selitän sinulle, kuinka voimme saavuttaa tämän laskelman.
Sisällysluettelo
Tietojen mallinnus
Ennen kuin kirjoitat varsinaisen DAX:n, katsotaanpa nopeasti tietomallia, joka sisältää useita taulukoita. Olemme kiinnostuneita vain päivämäärätaulukosta , tietotaulukosta , työluokkataulukosta ja asiakastaulukosta .
Huomaa, että Asiakas-taulukko ei ole todella tärkeä, koska sitä käytetään vain slicerin sisällä.
Tulomittaria lasketaan Data-taulukossa. Työluokka sisältää taloudellisen tason, joka meillä on matriisissa. Sitten käytämme slicerimme Päivämäärä-taulukon Päivämäärä-saraketta.
Versio 1
Päästään eroon matriisista ja aloitetaan alusta. Aion luoda uuden toimenpiteen ja kutsua sitä V1:ksi, koska tämä tulee olemaan versio yksi. Aiomme tarkastella myös kahta muuta muunnelmaa.
Suodatinkontekstin valmistelu
Ensimmäinen asia, jonka aiomme tehdä, on hakea kaikki taloudellisen tason arvot suodatinkontekstista. Luomme ja annamme sille nimen FinancialLevelInFilterContext .
Arvot noutaaksemme suodatinkontekstista aiomme käyttää taloustaso-sarakkeen sisältävän Työluokka-taulukon kohtaa. Sitten meidän on luotava toinen muuttuja ja nimettävä sille Tulos . Kirjoita sitten ja sulje myös se.
Ensimmäisessä argumentissa meillä on valinta päivämäärän viipalointityökalusta. Näissä päivämäärissä haluamme tunnistaa päivämäärät, joissa ei ole nollaa ja joilla on ainakin jonkin verran tuloja.
Jos haluat käyttää kaikkia kyseisessä lohkossa valittuja päivämääriä, meidän on käytettävä päivämäärätaulukkoa.
Ja koska meillä on taloudellinen taso matriisissa, meidän on myös varmistettava, että poistamme kyseisen arvon suodatinkontekstista. Voimme käyttää luokkaa Työn yli ja kirjoittaa sitten Taloudellinen taso 1.
Nyt kun suodatinkontekstimme on valmis, voimme kirjoittaa CLCULATE:n sisimmän laskelman. Ensin ilmoitamme muuttujan, joka on taloudellisen tason ja päivämääräsarakkeen yhdistelmä, kuten olemme nähneet ensimmäisessä taulukossa.
Sitten käytämme Data-taulukkoa ja teemme yhteenvedon näistä kahdesta taulukosta: Työluokka ja Päivämäärä-taulukko.
Tämä tarjoaa taloudellisen tason ja päivämääräsarakkeen yhdistelmän, joka on tietotaulukossa. Sitten aiomme luoda toisen muuttujan, johon tallennamme ensimmäisen luomamme muuttujan tulorivin arvon.
Tämän muuttujan nimi on FinancialLevelAndDatesWithRevenue . Tämän muuttujan koodi on edellisen muuttujan koodi. Sitten luomme virtuaalisen sarakkeen, joka on Tulot ja joka aloittaa kontekstin muutoksen. Olemme siis osoittaneet tulot tämän muuttujan jokaiselle riville.
Tämä taulukko sisältää tulot, joissa on myös nolla. Meidän on suodatettava pois nuo rivit nollalla. Tätä varten voimme luoda toisen muuttujan ja nimetä sen nimellä RemoveZeroes .
Käytämme edellisen muuttujan arvoa ja varmistamme sitten, että tuotto ei ole nolla. Se voi olla suurempi kuin nolla tai pienempi kuin nolla, mutta se ei saa olla tiukasti sama kuin nolla.
Ja sitten aiomme hakea päivämäärän RemoveZeroes-muuttujasta . Tätä varten voimme luoda toisen muuttujan ja nimetä sille KeepOnlyDates .
Voin käyttää -merkkiä päästäkseni eroon päällekkäisistä päivämääristä, jotka .
Seuraavaksi aiomme tunnistaa kolme parasta päivämäärää laskevassa järjestyksessä. Käytämme toista muuttujaa ja annamme sille nimen Last3Dates ja käytämme sitten .
Sitten käytämme päivämääräsarakkeen kolmea viimeistä päivämäärää ja käytämme sitten erotinmittaria.
Vedetään ja pudotetaan äskettäin luotu mittamme tuon matriisin sisään. Saamme tuloksen 31/03/2021, 07/04/2021 ja 02/04/2021. Tämä tarkoittaa, että toimenpiteemme toimii.
Palataan takaisin editoriin ja päästään eroon RETURN CONCATENATEX -osasta. Noutaaksemme nämä kolme viimeistä päivämäärää, voimme tarkistaa, mitkä rivit RemoveZeroes- muuttujasta ovat itse asiassa osa näitä kolmea viimeistä päivämäärää.
Ja tätä varten luomme toisen muuttujan DatesInLast3Dates ja käytämme RemoveZeroesin FILTER-toimintoa . Tämä palauttaa taulukon, joka sisältää työkategorian ja päivämäärän.
Teemme yhteenvedon tuottosarakkeesta, jonka olemme luoneet tuossa taulukossa. Palautetaan SUMX DatesInLast3Dates-arvoon ja tehdään sitten yhteenveto tulosarakkeesta.
Tällä laskennalla saamme vain yhden arvon kullekin riville, koska olemme poistaneet Työ-luokan suodatinkontekstista.
Käytämme alussa luomaamme muuttujaa tarkistaaksemme, ovatko DatesInLast3Dates-muuttujan jokainen rivi käytettävissä suodatinkontekstissa. Voimme kirjoittaa toisen muuttujan ja nimetä sen IsInFilterContext .
Tämä suodattaa DatesInLast3Dates -muuttujan päivämäärät . Sitten palautan SUMX:n IsInFilter-kontekstin kautta ja teen yhteenvedon tulosarakkeesta.
Kun painamme Enter , näet, että saamme saman tuloksen, joka meillä oli alussa.
DAX-kielen LuckyTemplates-laskennan tuloksen tarkistaminen
Varmistaaksemme, että saamme todella oikean tuloksen, voimme luoda uuden CLCULATE-taulukon, joka auttaa meitä virheenkorjauksessa, tunnistamisessa ja varmistamisessa, että tähän mennessä kirjoittamamme koodi todella palauttaa oikean tuloksen.
Luodaan kopio tähän mennessä kirjoittamastamme koodista. Kopion alla korostetun osan, palaan luomaan uusi taulukko ja liitän korostetun koodin. Emme aio vaivautua nimeämään tätä taulukkoa, koska se ei kiinnosta meitä.
Ja voimme yksinkertaisesti kirjoittaa RETURN DatesInLast3Dates . Jos napsautan Vahvista , saamme taulukon, mutta tiedämme, että se ei vielä palauta oikeaa tulosta, koska meidän on itse asiassa matkittava leikkurin toimintaa.
Voimme kääriä tämän koodin LASKETTABAN sisään ja sisentää kaiken. Viimeisessä osassa kirjoitan, että päivämäärän tulee olla suurempi tai yhtä suuri kuin 2021-03-15 ja että asiakkaan nimen tulee olla sama kuin DHL Supply Chain .
Taulukko, jonka olemme luoneet tämän mittarin sisällä, palauttaa käytännössä oikean tuloksen. Voimme käyttää LASKUTAULUKKOA vahvistaaksemme virtuaalitaulukon, jota olet luomassa laskelmassasi.
Muut DAX-kielen LuckyTemplates-laskelmat
Nyt kun tiedämme, että laskelmamme toimii ja ymmärrämme, mitä kulissien takana todella tapahtuu, voimme tarkastella muita menetelmiä saman ongelman laskemiseksi. Ensinnäkin luodaan kopio mittauksesta, jonka olemme jo luoneet.
Versio 2
Tällä kertaa emme aio luottaa VALUES- ja FILTER-toimintoihin, joten pääsemme niistä eroon. Poistamme palautustuloksen sekä viimeisen muuttujan, jonka olemme luoneet CLCULATE-sovelluksessa. Sitten muunnetaan CLCULATE muotoon CALCULATETABLE.
Ja sen sijaan, että palauttaisimme skalaariarvon, tällä kertaa aiomme palauttaa DatesInLast3Dates . Tämä palauttaa saman LASKETTAVAN, jonka teimme aiemmin. Aiomme käyttää CLCULATE-funktiota, ja ensimmäisessä argumentissa laskemme tulomitan ja lisäämme CALCULATETABLE suodattimen kontekstiksi.
Kun tuon sen matriisiin, voit nähdä, että palautamme saman kokonaissumman jokaiselle solulle.
KEEPFILTERS-toiminnon käyttäminen
Tällä hetkellä tiedämme, että laskenta kulissien takana toimii oikein, mutta mistä voimme olla varmoja, että jokaisesta solusta raportoimme vain kyseisen taloudellisen tason arvon?
CALCULATETABLE:n avulla olemme luoneet taulukon, joka sisältää taloudellisen tason, päivämääräsarakkeen ja tulosarakkeen. Voimme käyttää avainsuodatintoimintoa luodaksemme risteyksen CALCULATETABLE:n ulkopuolella olevan suodatinkontekstin ja CALCULATETABLE:n luoman kontekstin välille.
Kun napsautamme Vahvista, voimme nähdä, että raportoimme oikean arvon jokaiselle solulle ja että sekä versio 1 että versio 2 palauttavat oikean arvon.
Joten miten tämä toimii? LASKE-taulukko palauttaa Huoltotason , sitten Vuokraus , Ulkoinen huolto ja Varaosat . Se luo risteyksen ylläpidon ja taulukon välille.
Vuokraus luo alkuperäisen suodatinkontekstin, jonka jälkeen LASKUTAULUKKO palauttaa kaikki Työ-luokan arvot. Sitten tulee olemaan Vuokrauksen ja LASKUTAULUKON palauttaman taulukon välinen leikkaus. Palautamme vain kyseisen vuokra-osan taulukot tai rivit.
Ja lopuksi, kun lisäämme SUMMARIZEn suodatinkontekstiin, CLCULATE-funktio laskee tulot vain vuokrauksesta. Sama prosessi tapahtuu jokaiselle riville.
Versio 3
Katsotaanpa toista tapaa laskea sama laskutoimitus käyttämällä DAX-kielen LuckyTemplates. Luodaan kopio version 2 mittasta ja luodaan toinen mitta. Nimeämme tämän version 3.
Tämän laskelman ideana on, että koska laskemme tulot CALCULATE-funktiolla, meidän ei tarvitse käyttää ADDCOLUMNS-osaa, koska kopioimme saman asian LASKENTA-funktion sisällä ja ulkopuolella. Sen sijaan voimme yksinkertaisesti kirjoittaa, että tulo ei saa olla yhtä suuri kuin 0.
Kun napsautan Vahvista, meidän on varmistettava, että koodi toimii, joten vedetään mitta matriisin sisään.
Voit nähdä, että koodi itse asiassa palauttaa saman arvon jokaiselle solulle.
Jos yritän muuttaa suodattimen kontekstia muuttamalla päivämäärää Päivämäärä-osoittimessa ja valitsemalla pari arvoa Asiakkaan nimestä, voit nähdä, että kaikki kolme mittaa palauttavat itse asiassa saman arvon jokaiselle riville.
Johtopäätös
Tässä opetusohjelmassa opimme käyttämään monimutkaista logiikkaa ajassa taaksepäin lopetuspäivästä tunnistamaan kolme parasta päivämäärää. Tämän DAX-kielen LuckyTemplates-tekniikan perusteella pystyimme laskemaan tulot ja näyttämään vain ne arvot, jotka ovat olemassa suodatinkontekstissa. Siinä kaikki toistaiseksi tässä opetusohjelmassa.
Ota selvää, miksi LuckyTemplatesissa on tärkeää pitää oma päivämäärätaulukko ja opi nopein ja tehokkain tapa tehdä se.
Tämä lyhyt opetusohjelma korostaa LuckyTemplates-mobiiliraportointiominaisuutta. Näytän sinulle, kuinka voit kehittää raportteja tehokkaasti mobiililaitteille.
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.
Käy läpi tärkeimmät Power Appsin ja Power Automaten päivitykset sekä niiden edut ja vaikutukset Microsoft Power Platformiin.
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.
Tässä opetusohjelmassa opit luomaan täydellisen LuckyTemplates-mallin, joka on määritetty tarpeidesi ja mieltymystesi mukaan.
Tässä blogissa esittelemme, kuinka kerrostat kenttäparametreja pienillä kerroilla uskomattoman hyödyllisten näkemysten ja visuaalien luomiseksi.
Tässä blogissa opit käyttämään LuckyTemplates-sijoitus- ja mukautettuja ryhmittelyominaisuuksia näytetietojen segmentoimiseen ja luokitteluun kriteerien mukaan.
Tässä opetusohjelmassa käsittelen tiettyä tekniikkaa, jolla voit näyttää kumulatiivisen kokonaissumman LuckyTemplates-visuaaleissasi vain tiettyyn päivämäärään asti.
Opi luomaan ja mukauttamaan Bullet-kaavioita LuckyTemplatesissa, joita käytetään pääasiassa suorituskyvyn mittaamiseen suhteessa tavoitteeseen tai edellisiin vuosiin.