Ensimmäiset N työpäivää uudelleen – DAX-koodauskieliratkaisu

Tarkastellaanpa vielä kerran artikkelissa käsiteltyä ongelmaa, jossa verrattiin dynaamisesti kunkin kuukauden ensimmäistä N arkipäivää. Tämä ongelma perustui LuckyTemplates-jäsenen foorumillamme esittämään kyselyyn, jossa hän halusi dynaamisesti tarkastella ja verrata tietyn kuukauden ensimmäisiä 5, 10, 15 ja 20 laskutettavaa päivää (ei viikonloput ja vapaapäivät) verrattuna edellinen kuukausi.

Power queryn sijaan kehitämme DAX-koodauskielen ratkaisun. Voit katsoa tämän opetusohjelman koko videon tämän blogin alaosasta.

Ensimmäisessä videossa keksin power query -ratkaisun tämän ongelman ratkaisemiseksi. Mutta sitten yksi LuckyTemplates-asiantuntijoistamme, Antriksh Sharma, keksi loistavan tehokkaan toimenpiteen, johon kannattaa myös sukeltaa syvemmälle. Keskustelemme joistakin tekniikoista, joita hän käytti kehittäessään mittaa, joka tarjoaa sinulle lisätyökaluja DAX-työkalupakkiisi.

Se teki varmasti minulle ja joillekin muille asiantuntijoille, jotka katsoivat tätä. Vertailukelpoisten arkipäivien vertailu kuukausien välillä on yleisesti ottaen arvokas malli, jota voidaan käyttää monissa tilanteissa.

Ensimmäiset N työpäivää uudelleen – DAX-koodauskieliratkaisu

Sukellaan tehokyselyyn ja katsotaan, mitä Antriksh teki täällä. Meillä on kuukausi ja vuosi , kokonaismyynti ja lopuksi kokonaismyynti N arkipäivältä , jotka valitsimme tehokyselyllä kehittämämme mitä jos -parametrin perusteella.

Ensimmäiset N työpäivää uudelleen – DAX-koodauskieliratkaisu

Antriksh otti hyvin erilaisen lähestymistavan, jossa hän käytti järkyttävän lyhyttä toimenpidettä ratkaistakseen koko tämän ongelman. Ensimmäinen asia, jonka huomasin tässä, oli komennon käyttö.

Ensimmäiset N työpäivää uudelleen – DAX-koodauskieliratkaisu

Tämä on DAX-toiminto, jota en käytä kovin usein, mutta se sopii täydellisesti tämäntyyppisiin ongelmiin. Jos tarkastelemme SQL BI DAX -opasta, siinä sanotaan, että GENERATE-funktio on taulukkofunktio, joka käyttää syötteenä kahta eri taulukkoa ja tekee sitten vastaavan SQL-komentoa CROSS APPLY.

Ensimmäiset N työpäivää uudelleen – DAX-koodauskieliratkaisu

Joten se ottaa perustaulukon (Taulukko1) ja toistaa sitä, ottaa sitten toisen taulukkolausekkeen ja arvioi sen jokaiselle ensimmäisen taulukon riville ja palaa sitten taulukkoon tulosteena.

Otetaan Antrikshin mitta ja pudotetaan se pöytään. Voimme nähdä, että se tuottaa täsmälleen samat tulokset kuin tehokyselyratkaisu, jonka teimme viime kerralla. Joten se on hyvä ja validoi molemmat toimenpiteet melko hyvin.

Ensimmäiset N työpäivää uudelleen – DAX-koodauskieliratkaisu

Otetaan tämä mitta erilleen. Ensimmäinen tässä käytetty suodatin on Päivämäärät[IsBusinessDay] = TOSI. Tämä poistaa kaikki muut kuin viikonloppu- ja vapaapäivät laajennetun päivämäärätaulukon IsBusinessDay-kentän perusteella.

Puhumme tästä paljon enemmän -lehdessä, jossa kävimme myös läpi, kuinka se sitoa juhlapöytäämme.

Ensimmäiset N työpäivää uudelleen – DAX-koodauskieliratkaisu

Mielenkiintoinen osa tästä tulee todellakin kahdessa taulukossa. Ensimmäinen taulukko on vain yhden sarakkeen taulukko Päivämäärä-taulukon Kuukausi & Vuosi -kentässä.

Ensimmäiset N työpäivää uudelleen – DAX-koodauskieliratkaisu

Mutta toisessa taulukossa tapahtuu mielenkiintoisia asioita. Antriksh käytti a ja sitten dynaamista parametriamme rivien lukumääränä TOPN:ssa.

Ensimmäiset N työpäivää uudelleen – DAX-koodauskieliratkaisu

Kokonaismyyntimitta liitetään toiseen taulukkoon, ja sitä sovelletaan sitten ensimmäiseen taulukkoon .

Ensimmäiset N työpäivää uudelleen – DAX-koodauskieliratkaisu

Sisällysluettelo

Monimutkaisen toimenpiteen ymmärtäminen DAX-koodauskielellä

Yksi helpoimmista tavoista selvittää, mitä tällainen monimutkainen mitta tekee, on siirtyä taulukkoeditoriin . Voimme katsoa tätä lauseketta ja selvittää, mitä tämä TOPN-lauseke tekee ensin.

Ensimmäiset N työpäivää uudelleen – DAX-koodauskieliratkaisu

Kopioidaan TOPN-osio ja luodaan uusi. Muista, että DAX-kyselyt alkavat sanalla EVALUATE.

Ensimmäiset N työpäivää uudelleen – DAX-koodauskieliratkaisu

Kun liitämme TOPN-osion, näemme, että tämä vetää ensimmäiset 5 päivämäärää myyntitilaustaulukosta. TOPN:ssa on taulukko, joka koostuu kaikkien myyntitaulukon tilauspäivien arvoista.

Tämä TOPN-funktio ottaa mitä jos -parametrin arvon (joka tässä tapauksessa on 5) ja käyttää sitä myyntitilauksen päivämääräkenttään. Sitten se vetää 5 ensimmäistä päivämäärää suodatinkontekstista nousevassa järjestyksessä kyseisen kentän perusteella.

Ensimmäiset N työpäivää uudelleen – DAX-koodauskieliratkaisu

Koska ylimääräistä suodatinkontekstia ei ole, se vain hakee nämä viisi ensimmäistä päivämäärää koko taulukosta.

Ensimmäiset N työpäivää uudelleen – DAX-koodauskieliratkaisu

@Sales-sarake vain lisää kokonaismyynnin oikeaan suodatinkontekstiin TOPN-taulukkoon.

Ensimmäiset N työpäivää uudelleen – DAX-koodauskieliratkaisu

Toistaiseksi meillä on myyntitaulukosta ensimmäinen kuukausi & vuosi, toinen taulukko ensimmäisen N päivämäärän TOPN:sta ja sitten siihen liittyvä kokonaismyynti.

GENERATE-taulukon käyttäminen DAX-koodauskielessä

Katsotaanpa, mitä tämä GENERATE-taulukko tekee. Siirrymme takaisin taulukkoeditoriin ja luomme uuden DAX-kyselyn.

Aloitamme kuten aina EVALUATE-toiminnolla, liitämme koodin GENERATE-osion ja napsautamme 5.

Ensimmäiset N työpäivää uudelleen – DAX-koodauskieliratkaisu

Näemme, että ensimmäisen taulukon jokaisella rivillä se iteroidaan ja liittyy TOPN-taulukon 5 riviin, jotka on arvioitu @Sales-funktion yhteydessä.

On kulunut ensimmäiset 5 arkipäivää huhtikuussa, ensimmäiset 5 arkipäivää toukokuussa, ensimmäiset 5 arkipäivää kesäkuussa ja niin edelleen, kunnes se tulee ensimmäisen taulukon loppuun.

Ensimmäiset N työpäivää uudelleen – DAX-koodauskieliratkaisu

Juuri tätä me tarvitsemme, ja nyt on suhteellisen yksinkertainen asia lisätä nämä arvot yhteen. Meillä on tulos (joka on GENERATE-tulosten taulukkomuuttuja) ja sitten meidän on tehtävä yhteenveto @Sales-funktiosta.

Tässä yhteydessä teemme nyt yhteenvedon huhtikuun ensimmäisistä 5 työpäivästä, toukokuun ensimmäisistä 5 työpäivästä ja niin edelleen, kunnes saavutamme 23 737 430 dollarin kokonaissumman, jolloin sillä ei ole toimintakuukautta ja vuotta. .

Tämä summaa koko @Sales-sarakkeen ja saa meille täsmälleen saman kokonaissumman, joka meillä oli tehokyselyratkaisussamme.

Ensimmäiset N työpäivää uudelleen – DAX-koodauskieliratkaisu

Voit nähdä, että jos muutamme slicerin arvoksi 10, saamme dynaamisesti samat tulokset DAX-koodauskielellä kuin tehokyselyssä.

Ensimmäiset N työpäivää uudelleen – DAX-koodauskieliratkaisu

Meillä on myös alareunassa oleva pylväskaavio, joka mukautuu dynaamisesti vastaamaan tekemiämme muutoksia.

Ensimmäiset N työpäivää uudelleen – DAX-koodauskieliratkaisu

Säädä dynaamisesti toimenpiteen otsikkoa

Halusin näyttää sinulle toisen lisätempun. Voit luoda dynaamisen säädön mitä jos -parametrillesi ja sitoa sen dynaamisesti mittaotsikkoon.

Jos esimerkiksi vaihdamme ylhäällä olevan osittimen arvoon 15, se muuttaa dynaamisesti alareunassa olevan mittarin nimeksi Kokonaismyynti kunkin kuukauden 15 ensimmäisen arkipäivän osalta .

Ensimmäiset N työpäivää uudelleen – DAX-koodauskieliratkaisu

Tämä on helppo tapa tehdä DAXissa käyttämällä . Otamme periaatteessa vain kolme merkkijonoa. Ensimmäinen on Total Sales for First , ja sitten se ketjutetaan arvoon, jonka keräämme mitä jos -parametrista, ja sido se sitten otsikon loppuosaan.

Ensimmäiset N työpäivää uudelleen – DAX-koodauskieliratkaisu

Sitten siirrymme visualisointiin, siirrymme otsikon ehdolliseen muotoiluun ja napsauta fx .

Ensimmäiset N työpäivää uudelleen – DAX-koodauskieliratkaisu

Muotoilemme kentän arvon mukaan ja valitsemme kyseisen dynaamisen otsikon mitan. Tämä muuttaa mitä jos -parametrin valintaa.

Ensimmäiset N työpäivää uudelleen – DAX-koodauskieliratkaisu

Johtopäätös

Meillä on nyt täydellinen ratkaisu DAX-koodauskielellä. Olemme keskustelleet todella luovasta ja tehokkaasta tavasta tehdä se käyttämällä GENERATE-toimintoa. Haluan kiittää Antrikshia loistavan DAX-tietonsa jakamisesta kanssamme. Opin paljon käydessäni läpi hänen DAX-ratkaisuaan, ja toivottavasti sinäkin opit.


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.