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ämänpäiväisessä blogissa tutkimme, miksi sinun ei pitäisi käyttää DAX-toimintoa luokkakohtaisen keskiarvon saamiseksi ja tarjota vaihtoehtoisia ratkaisuja saadaksesi samat tulokset kuin haluat. Voit katsoa tämän opetusohjelman koko videon tämän blogin alaosasta .
Luokkakohtaisen keskiarvon saaminen DAXissa on oudon monimutkaista. Käyttämällä CLCULATE-toimintoa näiden laskelmien ratkaisemiseen uusien DAX-käyttäjien DAX-koodi voi olla vaikeampi ymmärtää kuin sen pitäisi olla. Hyvä uutinen on, että tähän ongelmaan on olemassa yksinkertaisempia ratkaisuja.
Sisällysluettelo
Yleiskatsaus CLCULATE DAX -funktiosta
Muutama kuukausi sitten esittelin LuckyTemplatesissa. Sitä kutsuttiin DAX-vastakulttuuriksi, jossa esitin joitain vaihtoehtoisia näkemyksiä DAXista.
Yksi tärkeimmistä liittyy CLCULATE-funktion käyttöön. Puhuin siitä, miksi sinun ei pitäisi käyttää CLCULATEa, varsinkin jos olet uusi DAX-käyttäjä.
CLCULATE on todella monimutkainen funktio, joka on ymmärrettävä ja käytettävä. Se tekee tiettyjä oletuksia tietomallistasi ja voi aiheuttaa sinulle paljon ongelmia.
Kaivoin myös Microsoftin Running Total -ohjelmaan, koska se ei toimi yhden taulukon tilanteissa ja se tarvitsee tähtiskeeman toimiakseen kunnolla.
Niinpä näytin helpomman vaihtoehdon, joka toimii riippumatta siitä, onko se tähtimalli tai yksitaulukkomalli ilman CLCULATE-toimintoa.
LASKE DAX-kaava
Tässä blogissa tarkastellaan nopeaa mittaria nimeltä Keskiarvo kategorioittain . Jos olet LuckyTemplates-työpöydällä, aloita menemällä Kentät-ruutuun ja luomalla Uusi pikamitta .
Valitse avautuvassa Pikamittaus-ikkunassa avattavasta Laskenta- valikosta Keskiarvo luokkaa kohti . Vedä sitten ? Arvo Perusarvo- tekstikentässä ja kuukausi Luokka- kentässä .
Napsauta sitten OK ja saat visuaalisen kuvan, joka näyttää tältä.
X-akselilla ovat neljännekset – neljännes 1, 2, 3 ja 4.
Ja mitä haluat tehdä, on summata jokaisen alla näkyvän kuukauden arvot ja ottaa sitten näiden arvojen keskiarvo. Lyhyesti sanottuna keskiarvo luokkaa kohti, joka on blogimme aihe.
Tietomallimme tätä varten on hyvin yksinkertainen. Meillä on taulukko, jossa on erillisissä sarakkeissa päivämäärät , satunnaisesti luodut arvot ja kuukausi , kuukausilajittelu ja neljännekset .
Ja meillä on sama asia kalenteritaulukon, kuukauden, kuukauden lajittelun ja vuosineljänneksen kanssa. Tämä tarkoittaa, että voimme valita vuosineljänneksen tai kuukauden joko päivämäärätaulukosta tai ensimmäisestä taulukosta.
Hyvä uutinen Average per Category -sovelluksessa on, että se todella toimii riippumatta siitä, onko sinulla yksi taulukkomalli vai tähtiskeema.
Näissä kuvissa käytämme neljännestä ensimmäisestä taulukosta…
…vaikka tämä käyttää vuosineljännestä päivämäärätaulukostamme. Se toimii kummallakin tavalla.
Mutta keskimääräisen kategorian ongelma on yksinkertaisesti DAX-koodi.
Tämä DAX-koodi on outo, koska vaikka olisit DAX-asiantuntija, se todennäköisesti hämmentää sinut ensi silmäyksellä. Se on oudolla tavalla rakennettu CALCULATE-käskyllä, jossa ei ole suodatinlausetta, ja se vain käärii summalausekkeen.
Itse asiassa, se on yksi niistä lemmikkipiivoistani, kun näen foorumeilla ihmisiä, jotka käyttävät CLCULATE-ohjelmaa, joka vain käärii summan ilman syytä. Mutta tässä tapauksessa siihen on itse asiassa syy.
Mieleni hämmentää aina kun näen ne, koska se on vain välitön osoitus siitä, että heillä ei ole aavistustakaan siitä, mitä he tekevät CLCULATE-toiminnolla. Joten suosittelen vain pysymään erossa siitä.
DAX-koodi keskiarvolle luokkaa kohden
Yllä näkyvä DAX-koodi käyttää . Tämä toiminto ei ole CLCULATE-segmentissä, mikä taas tekee siitä outoa. Oletettavasti tämä funktio on rakennettu käytettäväksi CALCULATE-käskyissä sen dokumentaation perusteella.
Koodi käyttää myös , jota en hyväksy. Heidän ei tulisi koskaan käyttää ARVOJA, koska erillisillä arvoilla on taipumus palauttaa tyhjä rivi, jos rivi ei täsmää. Siitä voi tulla paljon ongelmia, mutta se on toisen videon aihe.
Pohjimmiltaan tässä tapahtuu se, että he käyttävät ARVOT-funktiota saadakseen kaikki luokkamme. Esimerkiksi 1. vuosineljänneksellä se on tammikuu, helmikuu ja maaliskuu. VALUES palauttaa myös taulukon, mutta ne käyttävät KEEPFILTER-käskyä tehdäkseen siitä kelvollisen ensimmäisenä parametrina .
Ne myös pitävät CLCULATE-toiminnon suoritettavana KEEPFILTERS-kontekstissa. AVERAGEXin toimintatavan vuoksi se ottaa toisen lausekkeen ja suorittaa sen ensimmäisen lausekkeen yhteydessä.
Mikä sitten on ongelma?
Kaiken kaikkiaan se toimii hyvin, mutta ei jollekin uudelle DAX-käyttäjälle. Uskon, että Microsoft todella kaipasi venettä, kun he loivat tämän nopean toimenpiteen, koska nopeat toimenpiteet on oletettavasti tarkoitettu DAX:n uusille käyttäjille.
Pikamitat ovat hyvä idea, kuten "Kirjoitetaan sinulle joitain yleisiä mittareita erilaisilla laskelmilla, koska olet uusi DAX:ssa etkä tiedä kaikkea DAXista." Mutta miksi he rakentaisivat ne niin oudoilla, monimutkaisilla tavoilla?
Miten jonkun uuden DAX-käyttäjän pitäisi katsoa tätä ja selvittää, mitä tapahtuu, kun jopa luultavasti DAX-ammattilaiset raaputtavat hieman päätään tästä?
Joten minusta he menettivät loistavan tilaisuuden auttaa ihmisiä oppimaan DAX:ia nopeilla toimenpiteillään vaatimalla, että ne sisältävät CLCULATE:n ja joutuivat hyppäämään vanteiden läpi saadakseen CLCULATE:n sisään.
Helpompi Ratkaisu
SUMMARIZE-toiminnon käyttäminen
Kuten aiemmin mainitsin, on olemassa parempi ja yksinkertaisempi tapa tehdä se.
Luo ensin taulukkomuuttuja käyttämällä VAR_Tablea . Otamme sitten taulukon, teemme sen yhteenvedon kuukausittain, luomme Arvo-sarakkeen ja laskemme arvomme yhteen.
Lopuksi otamme arvojen keskiarvon käyttämällä AVERAGEX- funktiota.
Tämä koodi on yksinkertaisempi ja paljon loogisempi. Se ei sisällä CLCULATE, jota et kuitenkaan tarvitse.
Saatat törmätä blogiartikkeliin, jossa kritisoidaan SUMMARIZEa. Blogin mukaan tapa, jolla SUMMARIZE toimii sisäisesti, on melko monimutkainen.
Se viittaa myös siihen, että voit joutua vaikeuksiin yhdessä tietyssä tapauksessa, mutta et koskaan törmää siihen. Näin tapahtuisi vain, jos laskentaan sisältyy erittäin monimutkainen laskelma ja erittäin suuri taulukko. Vasta sitten SUMMARIZE antaa hämäriä tuloksia.
Näin ainakin blogikirjoituksessa väitetään. Ja se on hienoa, jos haluat ujostella SUMMARIZEa. Käytä siinä tapauksessa toimintoa sen sijaan.
GROUPBY-funktion käyttäminen
Kenelläkään ei ole ongelmia GROUPBY-toiminnon käytössä, joten opetellaan käyttämään sitäkin. Luo taas taulukkomuuttuja käyttämällä VAR_Tablea. Sitten GROUPBY Month ja luomme Arvo-sarakkeen.
Seuraavaksi hakemus tehdään käyttämällä CURRENTGROUPa , jolla GROUPBY toimii. Summataan arvomme ja otetaan jälleen AVERAGEX sen yli.
Koodimme pitäisi näyttää tältä.
Tulosten vertailu: SUMMARIZE vs GROUPBY vs LASKE DAX-funktiot
Katsotaan nyt, tuottivatko tekemämme pikanäppäimet samat tulokset.
Kuten alla olevista kuvista näet, sekä SUMMARIZE, joka on merkitty Parempi keskiarvo luokkaa kohti, että GROUPBY, joka on merkitty Parempi keskiarvo luokkaa kohti, palauttavat samat luvut.
Molemmat kaavamme palauttavat 3,4 t Q1:lle, 3,6 000 Q2:lle, 3,4 000 Q3:lle ja 3,5 000 Q4:lle. Ja jälleen, ne toimivat yhden taulukon tietomallissa käyttämällä Quartersia taulukossamme.
Ne toimivat myös tähtiskeemassa, jossa käytämme päivämäärätaulukossamme Quartersia.
Johtopäätös
Meidän ei tarvitse pakottaa itseämme kierrettyyn kontekstilogiikkaan vain saadaksemme LASKENTAA kaavoihimme. Käytä vain yksinkertaisia DAX-standarditoimintoja ja voit saavuttaa samat asiat.
Itse asiassa, luultavasti 80–90 prosentissa tapauksista, ei ole mitään syytä vaivautua käyttämään CALCULATEa mihinkään. Sen sijaan voit käyttää SUMMARIZE- ja GROUPBY-funktioita, jotka ovat yksinkertaisempia ja loogisempia.
Jos haluat tutustua tähän PBIX-tiedostoon, olen jo julkaissut sen Quick Measures Galleryssä ja nimennyt tiedoston Better Average per Category . Vieritä sivua alaspäin löytääksesi PBIX-tiedoston, jonka voit ladata ja pelata itsesi kanssa.
Kaikki parhaat,
Greg Deckler
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.