Suhde- ja taajuustaulukot Excelissä
Aioin sukeltaa Excelin taajuustaulukoihin sekä suhteellisiin taulukoihin. Selvitä, mitä ne ovat ja milloin niitä käytetään.
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
Aioin sukeltaa Excelin taajuustaulukoihin sekä suhteellisiin taulukoihin. Selvitä, mitä ne ovat ja milloin niitä käytetään.
Opi lataamaan ja asentamaan DAX Studio ja Tabular Editor 3 ja miten ne määritetään käytettäväksi LuckyTemplatesissa ja Excelissä.
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.
Tässä opetusohjelmassa esittelen ainutlaatuisen idean talousraportoinnista, joka allokoi tulokset LuckyTemplatesin sisällä olevien taulukkopohjien ennalta määrittämiseen.
Luo DAX-suureita LuckyTemplatesissa käyttämällä olemassa olevia suureita tai kaavoja. Tätä kutsun mittahaaroitustekniikaksi.
Tässä blogissa tutustu LuckyTemplates-tietojoukkoon, tehokkaimpaan funktiokutsuun, joka tuo tuhansia M- ja DAX-funktioita sormiesi ulottuville.
Tämän päivän opetusohjelmassa jaan muutamia datamallinnustekniikoita DAX-mittausten järjestämiseksi paremmin tehokkaamman työnkulun aikaansaamiseksi.
LuckyTemplates on loistava työkalu talousraportointiin. Tässä on opetusohjelma räätälöityjen taulukoiden luomisesta LuckyTemplates-talouden hallintapaneelillesi.
Tässä opetusohjelmassa keskustellaan Power Query Language Flowsta ja siitä, kuinka se voi auttaa luomaan sujuvan ja tehokkaan dataraportin.
Keskustelen yhdestä suosikkitekniikoistani mukautettujen LuckyTemplates-kuvakkeiden ympärillä, joka käyttää mukautettuja kuvakkeita dynaamisella tavalla LuckyTemplates-visuaaleissa.