Jaa


Opi DAX:n perusteet Power BI Desktopissa

Power BI Desktopin uudet käyttäjät voivat käyttää tätä artikkelia nopeana ja helppona johdatuksena siihen, miten Data Analysis Expressions (DAX) -työkalua voi ratkaista monia peruslasku- ja data-analyysiongelmia. Käymme läpi käsitteellistä tietoa, sarjan tehtäviä, joita voit suorittaa, sekä tiedon tarkistuksen oppimasi testaamiseksi. Tämän artikkelin suorittamisen jälkeen sinun tulisi ymmärtää hyvin DAXin tärkeimmät peruskäsitteet.

Mikä on DAX?

DAX on joukko funktioita, operaattoreita ja vakioita, joita voidaan käyttää lausekkeessa tai lausekkeessa yhden tai useamman arvon laskemiseen ja palauttamiseen. DAX auttaa luomaan uutta tietoa jo mallissasi olevista tiedoista.

Miksi DAX on niin tärkeä?

On helppoa luoda uusi Power BI Desktop -tiedosto ja tuoda siihen tietoja. Voit jopa luoda raportteja, jotka näyttävät arvokkaita näkemyksiä käyttämättä lainkaan DAX-kaavoja. Mutta entä jos sinun täytyy analysoida kasvuprosenttia eri tuotekategorioissa ja eri päivämääräväleillä? Vai pitääkö sinun laskea vuosittainen kasvu verrattuna markkinatrendeihin? DAX-kaavat tarjoavat tämän kyvykkyyden ja monia muita tärkeitä ominaisuuksia. Tehokkaiden DAX-kaavojen luomisen opettelu auttaa sinua saamaan datastasi kaiken irti. Kun saat tarvitsemasi tiedot, voit alkaa ratkaista todellisia liiketoimintaongelmia, jotka vaikuttavat tulokseesi.

Prerequisites

Saatat jo olla tuttu kaavojen luomiseen Microsoft Excelissä, ja tämä tieto auttaa DAX:n ymmärtämisessä. Mutta vaikka sinulla ei olisi kokemusta Excel-kaavoista, tässä kuvatut käsitteet auttavat sinua aloittamaan DAX-kaavojen luomisen ja todellisten BI-ongelmien ratkaisemisen heti.

Keskitymme DAX-kaavojen ymmärtämiseen, joita käytetään laskennassa, tarkemmin mittareissa ja lasketuissa sarakkeissa. Sinun tulisi jo olla perehtynyt käyttämään Power BI Desktopia datan tuomiseen ja kenttien lisäämiseen raporttiin, ja sinun tulisi myös tuntea mittayksiköiden ja laskettujen sarakkeiden peruskäsitteet.

Esimerkkityökirja

Paras tapa oppia DAX on luoda peruskaavoja, käyttää niitä todellisen datan kanssa ja nähdä tulokset itse. Tässä esimerkit ja tehtävät käyttävät Contoso Sales Sample for Power BI Desktop -tiedostoa. Tämä esimerkkitiedosto on sama, jota käytettiin artikkelissa Tutorial: Create your own measures in Power BI Desktop .

Aloitetaan

Kehystämme ymmärryksemme DAXista kolmen peruskäsitteen ympärille: syntaksi, funktiot ja konteksti. DAX:ssa on muitakin tärkeitä käsitteitä, mutta näiden kolmen käsitteen ymmärtäminen antaa parhaan pohjan DAX-taitojesi rakentamiselle.

Syntax

Ennen kuin luot omia kaavoja, katsotaanpa DAX-kaavasyntaksia. Syntaksi sisältää ne eri elementit, jotka muodostavat kaavan, tai yksinkertaisemmin sen, miten kaava kirjoitetaan. Esimerkiksi tässä on yksinkertainen DAX-kaava mittarille:

Kuvakaappaus DAX-kaavasta, jossa on osoittimia yksittäisiin syntaksielementteihin.

Tämä kaava sisältää seuraavat syntaksielementit:

A. Mittarin nimi on Total Sales.

B. Yhtäsuuruusmerkkioperaattori (=), joka ilmaisee kaavan alun. Kun se lasketaan, se palauttaa tuloksen.

C. DAX-funktio SUM, joka laskee yhteen kaikki luvut Sales[SalesAmount] -sarakkeessa. Opit lisää funktioista myöhemmin.

D. Sulkeet (), jotka ympäröivät lauseketta, joka sisältää yhden tai useamman argumentin. Useimmat funktiot vaativat vähintään yhden argumentin. Argumentti välittää arvon funktiolle.

E. Mainittu taulukko, myynti.

F. Viitattu sarakke, [SalesAmount], Sales-taulukossa. Tämän argumentin avulla SUM-funktio tietää, millä sarakkeella SUM aggregoidaan.

Kun yrität ymmärtää DAX-kaavaa, on usein hyödyllistä pilkkoa jokainen elementti kieleen, jota ajattelet ja puhut päivittäin. Esimerkiksi voit lukea tämän kaavan seuraavasti:

Mittarille nimeltä Total Sales laske (=) arvojen summa [SalesAmount] -sarakkeessa Sales-taulukossa.

Kun mittari lisätään raporttiin, se laskee ja palauttaa arvot summaamalla myyntisummat jokaiselle muulle kentälle, kuten Matkapuhelimet Yhdysvalloissa.

Saatat ajatella: "Eikö tämä mittari tee samaa kuin jos lisäisin SalesAmount-kentän raporttiini?" No, kyllä. Mutta on hyvä syy luoda oma mittarimme, joka tiivistää arvot SalesAmount-kentästä: voimme käyttää sitä argumenttina muissa kaavoissa. Tämä ratkaisu saattaa nyt tuntua hieman sekavalta, mutta kun DAX-kaavataitosi kehittyvät, tämän mittarin tunteminen tekee kaavoistasi ja mallistasi tehokkaampia. Itse asiassa näet Total Sales -mittarin myöhemmin argumenttina muissa kaavoissa.

Käydään läpi vielä muutama asia tästä kaavasta. Erityisesti esittelimme funktion, SUMin. Funktiot ovat valmiiksi kirjoitettuja kaavoja, jotka helpottavat monimutkaisten laskutoimitusten ja käsittelyjen tekemistä numeroiden, päivämäärien, ajan, tekstin ja muun avulla. Opit lisää funktioista myöhemmin.

Näet myös, että sarakkeen nimeä [SalesAmount] edelsi Sales-taulukko, johon sarake kuuluu. Tätä nimeä kutsutaan täysin päteväksi sarakkeen nimeksi, koska se sisältää sarakkeen nimen, jota edeltää taulukon nimi. Saman taulukon sarakkeet eivät vaadi taulukon nimen sisällyttämistä kaavaan, mikä voi tehdä pitkistä kaavoista, jotka viittaavat moniin sarakkeisiin, lyhyempiä ja helpommin luettavia. On kuitenkin hyvä käytäntö sisällyttää taulukon nimi mittakaavoihin, vaikka ne olisivat samassa taulukossa.

Huomautus

Jos taulukon nimi sisältää välilyöntejä, varattuja avainsanoja tai kiellettyjä merkkejä, sinun on liitettävä taulukko yksittäisiin lainausmerkkeihin. Sinun täytyy myös liittää taulukkojen nimet lainausmerkkeihin, jos nimi sisältää merkkejä ANSI:n aakkosnumeerisen merkkialueen ulkopuolella, riippumatta siitä, tukeeko alueesi merkkijoukkoa vai ei.

On tärkeää, että kaavoillasi on oikea syntaksi. Useimmissa tapauksissa, jos syntaksi ei ole oikein, syntaksivirhe palautuu. Joissakin tapauksissa syntaksi voi olla oikea, mutta palautetut arvot eivät välttämättä vastaa odotuksiasi. Power BI Desktopin DAX-editorissa on ehdotusominaisuus, jota käytetään syntaktisesti oikeiden kaavojen luomiseen auttamalla valitsemaan oikeat elementit.

Luodaan esimerkkikaava. Tämä tehtävä auttaa sinua ymmärtämään paremmin kaavasyntaksia ja sitä, miten kaavapalkissa olevat ehdotukset voivat auttaa sinua.

Tehtävä: Luo mittakaava

  1. Lataa ja avaa Contoso Sales Sample Power BI Desktop -tiedosto.

  2. Raporttinäkymässä kenttälistassa napsauta hiiren oikealla Myynti-taulukkoa ja valitse sitten Uusi mittari.

  3. Kaavapalkissa korvaa Mitta syöttämällä uusi mittarin nimi, Edellisen neljänneksen myynti.

  4. Yhtä-arvomerkin jälkeen kirjoita ensimmäiset kirjaimet CAL ja kaksoisklikkaa haluamaasi funktiota. Tässä kaavassa haluat käyttää CALLE-funktiota.

    Käytät CALURE-funktiota suodattamaan summat, jotka haluamme summata, argumentilla, jonka välitämme CALLE-funktiolle. Tätä funktiotyyppiä kutsutaan pesäkkäisiksi funktioiksi. CALLE-funktiolla on vähintään kaksi argumenttia. Ensimmäinen on arvioitava lauseke ja toinen suodatin.

  5. Avaussulun jälkeen (CALLE-funktio , kirjoita SUM ja sen jälkeen toinen avaussulku (.

    Seuraavaksi välitämme argumentin SUM-funktiolle.

  6. Aloita kirjoittamalla Sal, valitse sitten Sales[SalesAmount], jonka jälkeen sulkusulkeet ).

    Tämä vaihe luo ensimmäisen lausekeargumentin CALLE-funktiolle.

  7. Kirjoita pilkku (,) ja sitten välilyönti ensimmäisen suodattimen määrittämiseksi, ja sitten PREVIOUSQUARTER.

    Käytät EDELLISNELJÄNNEKSEN aikaälykkyysfunktiota suodattaaksesi SUMMA-tulokset edellisen neljänneksen mukaan.

  8. Avaussulkeiden jälkeen ( PREVIOUSQUARTER-funktiolle kirjoita Calendar[DateKey].

    PREVIOUSQUARTER-funktiolla on yksi argumentti, sarakke, joka sisältää yhtenäisen aikavälin päivämääriä. Meidän tapauksessamme se on kalenteritaulukon DateKey-sarakke.

  9. Sulje sekä PREVIOUSQUARTER-funktioon että CALA-funktioon syötettävät argumentit kirjoittamalla kaksi sulkevaa sulkua :).

    Kaavan pitäisi nyt näyttää tältä:

    Edellisen neljänneksen myynti = LASKE (SUMMA (Myynti[MyyntiSumma]), EDELLINEN Neljännesvuosi (Kalenteri [PäivämääräAvain]))

  10. Valitse valintamerkki Rasti -kuvake kaavapalkista tai paina Enteriä validoidaksesi kaavan ja lisätäksesi sen Myynti-taulukkoon.

Sinä teit sen! Loit juuri monimutkaisen mittarin käyttämällä DAX:ia. Tämä kaava laskee edellisen neljänneksen kokonaismyynnit raportissa käytettyjen suodattimien mukaan. Esimerkiksi voimme laittaa SalesAmountin ja uuden edellisen neljänneksen myyntimittarimme Sales-taulukosta Clustered-sarakkeuskaavioon. Lisää sitten kalenteritaulukosta Vuosi viipalointityökaluksi ja valitse 2011. Lisää sitten QuarterOfYear toisena viipalointityökaluna ja valitse 4, jolloin saadaan kaavio tällainen:

Edellisen neljänneksen myynti- ja myyntisummakaavio

Muista, että otosmalli sisältää vain pienen määrän myyntitietoja 1.1.2011–19.1.2013. Jos valitset vuoden tai neljänneksen, jolloin SalesAmountia ei voi laskea, tai uusi mittarisi ei pysty laskemaan myyntitietoja nykyiseltä tai edelliseltä neljännekseltä, kyseiseltä ajanjaksolta ei näytetä tietoja. Esimerkiksi, jos valitset vuoden 2011 vuodeksi ja 1 vuosineljännekseksi, ei näytetä tietoja edellisen neljänneksen myynneistä, koska ei ole tietoja vuoden 2010 neljännelle neljännekselle.

Sinulle esiteltiin useita tärkeitä DAX-kaavojen osa-alueita:

  • Tämä kaava sisälsi kaksi toimintoa. PREVIOUSQUARTER, aikaälyfunktio, on sisäkkäinen argumentiksi, joka välitetään CALCULATElle, suodatinfunktiolle.

    DAX-kaavat voivat sisältää jopa 64 sisäkkäistä funktiota. On epätodennäköistä, että kaava sisältäisi näin paljon sisäkkäisiä funktioita. Itse asiassa tällaisen kaavan luominen ja debuggaaminen olisi vaikeaa, eikä se todennäköisesti olisi nopeakaan nopea.

  • Tässä kaavassa käytit myös suodattimia. Suodattimet kaventavat laskettavia määriä. Tässä tapauksessa valitsit yhden suodattimen argumentiksi, joka on itse asiassa toisen funktion tulos. Opit suodattimista lisää myöhemmin.

  • Käytit CALCE-funktiota. Tämä funktio on yksi DAX:n tehokkaimmista toiminnoista. Kun luot malleja ja luot monimutkaisempia kaavoja, tulet todennäköisesti käyttämään tätä toimintoa monta kertaa. Vaikka lisäkeskustelu CACALCE-funktiosta on tämän artikkelin ulkopuolella, kun tietämyksesi DAX:sta kasvaa, kiinnitä siihen erityistä huomiota.

Syntaksi QuickQuiz

  1. Mitä tämä painike kaavapalkissa tekee?

    Napin valinta

  2. Mikä DAX-kaavan sarakkeen nimen ympärillä aina on?

Vastaukset löytyvät tämän artikkelin lopusta.

Funktiot

Funktiot ovat ennalta määriteltyjä kaavoja, jotka suorittavat laskelmia käyttämällä tiettyjä arvoja, joita kutsutaan argumenteiksi, tietyssä järjestyksessä tai rakenteessa. Argumentteja voivat olla muita funktioita, toinen kaava, lauseke, sarakkeviittaukset, numerot, teksti, loogiset arvot kuten TOSI tai EPÄTOSI, tai vakioita.

DAX sisältää seuraavat funktiokategoriat: päivämäärä ja aika, aikaäly,informaatio, looginen, matemaattinen, tilastollinen, teksti, vanhempi/lapsi ja muut funktiot. Jos tunnet Excel-kaavojen funktiot, monet DAX:n funktioista näyttävät samankaltaisilta kuin sinä; kuitenkin DAX-funktiot ovat ainutlaatuisia seuraavilla tavoilla:

  • DAX-funktio viittaa aina täydelliseen sarakkeeseen tai taulukkoon. Jos haluat käyttää vain tiettyjä arvoja taulukosta tai sarakkeesta, voit lisätä kaavaan suodattimia.

  • Jos sinun täytyy räätälöidä laskutoimituksia rivikohtaisesti, DAX tarjoaa funktioita, joiden avulla voit käyttää nykyistä riviarvoa tai siihen liittyvää arvoa eräänlaisena argumenttina laskutoimitusten tekemiseen kontekstin perusteella. Opit lisää kontekstista myöhemmin.

  • DAX sisältää monia funktioita, jotka palauttavat taulukon arvon sijaan. Taulukkoa ei näytetä, mutta sitä käytetään syötteen antamiseen muille toiminnoille. Voit esimerkiksi noutaa taulukon ja laskea sitten sen erilliset arvot tai laskea dynaamisia summia suodatettavissa taulukoissa tai sarakkeissa.

  • DAX sisältää erilaisia aikaälyfunktioita. Näiden funktioiden avulla voit määritellä tai valita aikavälit ja tehdä dynaamisia laskelmia niiden perusteella. Voit esimerkiksi verrata rinnakkaisten jaksojen summia.

  • Excelissä on suosittu toiminto, VLOOKUP. DAX-funktiot eivät ota solua tai solualuetta viitteenä kuten VLOOKUP tekee Excelissä. DAX-funktiot ottavat viitteenä sarakkeen tai taulukon. Muista, että Power BI Desktopissa työskentelet relaatiotietomallin kanssa. Arvojen etsiminen toisesta taulukosta on helppoa, eikä useimmissa tapauksissa tarvitse luoda lainkaan kaavoja.

    Kuten näet, DAXin funktiot voivat auttaa sinua luomaan tehokkaita kaavoja. Käsittelimme vain funktioiden perusteita. Kun DAX-taitosi kehittyvät, luot kaavoja käyttämällä monia eri funktioita. Yksi parhaista paikoista saada tietoa kustakin DAX-funktiosta on DAX Function Reference.

Functions QuickQuiz

  1. Mihin funktio aina viittaa?
  2. Voiko kaava sisältää useamman kuin yhden funktion?
  3. Mitä funktioiden kategoriaa käyttäisit yhdistääksesi kaksi tekstimerkkijonoa yhdeksi merkkijonoksi?

Vastaukset löytyvät tämän artikkelin lopusta.

Context

Konteksti on yksi tärkeimmistä DAX-käsitteistä ymmärtää. DAX:ssa on kahta tyyppiä kontekstia: rivikonteksti ja suodatinkonteksti. Tarkastelemme ensin rivikontekstia.

Rivikonteksti

Rivikontekstia on helpoimmin ajatella nykyisenä rivinä. Se pätee aina, kun kaavalla on funktio, joka käyttää suodattimia yksittäisen rivin tunnistamiseksi taulukossa. Funktio soveltaa luonnostaan rivikontekstin jokaiselle taulukon riville, jonka yli se suodatetaan. Tämäntyyppinen rivikonteksti koskee useimmiten mittareita.

Suodatinkonteksti

Suodatinkonteksti on hieman vaikeampi ymmärtää kuin rivikonteksti. Suodatinkontekstia voi helpoimmin ajatella seuraavasti: Yksi tai useampi suodatin laskennassa, joka määrittää tuloksen tai arvon.

Suodatinkontekstia ei ole rivikontekstin tilalla; sen sijaan se pätee rivikontekstin lisäksi. Esimerkiksi, jos haluat rajata laskentaan sisällytettäviä arvoja, voit soveltaa suodatinkontekstia, joka ei ainoastaan määritä rivikontekstia, vaan myös tietyn arvon (suodattimen) kyseisessä rivikontekstissa.

Suodatinkonteksti näkyy helposti raporteissasi. Esimerkiksi, kun lisäät visualisointiin TotalCostin ja sitten Year ja Region, määrittelet suodatinkontekstin, joka valitsee tietyn datajoukon tietyn vuoden ja alueen perusteella.

Miksi suodatinkonteksti on DAXille niin tärkeä? Olet nähnyt, että suodatinkontekstia voidaan soveltaa lisäämällä kenttiä visualisointiin. Suodatinkontekstia voidaan soveltaa myös DAX-kaavaan määrittämällä suodatin funktioilla kuten ALL, RELATED, FILTER, CALCULATE, suhteilla sekä muilla mittauksilla ja sarakkeilla. Esimerkiksi tarkastellaan seuraavaa kaavaa mittarissa nimeltä Store Sales:

Myymälämyyntimittari

Ymmärtääksemme tätä kaavaa paremmin, voimme pilkkoa sen, aivan kuten muissakin kaavoissa.

Tämä kaava sisältää seuraavat syntaksielementit:

A. Mittarin nimi on Store Sales.

B. Yhtäsuuruusmerkkioperaattori (=), joka ilmaisee kaavan alun.

C. CALAVER-funktio, joka arvioi lauseketta argumenttina kontekstissa, jota määritellyt suodattimet muokkaavat.

D. Sulut (), jotka ympäröivät lauseketta, joka sisältää yhden tai useamman argumentin.

E. Mittari [Kokonaismyynti] samassa taulukossa lausekkeena. Kokonaismyyntimittarin kaava on: =SUM(Sales[SalesAmount]).

F. Pilkku (,), joka erottaa ensimmäisen lausekkeen argumentin suodatinargumentista.

G. Täysin pätevä viitekolumni, Channel[ChannelName]. Tässä on meidän rivikontekstimme. Jokainen tämän sarakkeen rivi määrittelee kanavan, kuten Store tai Online.

H. Erityinen arvo, Store, suodattimena. Tässä on suodatinkontekstimme.

Tämä kaava varmistaa, että vain Total Sales -mittarin määrittelemät myyntiarvot lasketaan vain Channel[ChannelName] -sarakkeen riveille, ja Store-arvoa käytetään suodattimena.

Kuten voit kuvitella, suodattimen kontekstin määrittely kaavan sisällä tarjoaa valtavia ja voimakkaita kykyjä. Mahdollisuus viitata vain tiettyyn arvoon liittyvässä taulukossa on vain yksi esimerkki. Älä huoli, jos et ymmärrä kontekstia heti täysin. Kun luot omia kaavojasi, ymmärrät paremmin kontekstia ja miksi se on niin tärkeää DAXissa.

Konteksti QuickQuiz

  1. Mitkä ovat nämä kaksi kontekstityyppiä?
  2. Mikä on suodatinkonteksti?
  3. Mikä on rivikonteksti?

Vastaukset löytyvät tämän artikkelin lopusta.

Huomioitavia seikkoja

Ota huomioon, että vaikka Power Query Editor on kirjainkoon sensitiivis, DAX ja Power BI:tä ylläpitävä Analysis Services -moottori ovat kirjainkoon merkitsemättömiä , kun data on ladattu etupäähän. Pidä tämä ero mielessä kirjoittaessasi DAX-kyselyitä.

Summary

Nyt kun sinulla on perusymmärrys DAX:n tärkeimmistä käsitteistä, voit alkaa luoda DAX-kaavoja mittauksille itse. DAX:n oppiminen voi olla hieman haastavaa, mutta tarjolla on paljon resursseja. Luettuasi tämän artikkelin ja kokeiltuasi muutamia omia kaavojasi, voit oppia lisää muista DAX-käsitteistä ja kaavoista, jotka voivat auttaa sinua ratkaisemaan omia liiketoimintaongelmiasi. Saatavilla on monia DAX-resursseja; tärkein on Data Analysis Expressions (DAX) -viite.

Koska DAX on ollut olemassa jo useita vuosia muissa Microsoft BI -työkaluissa, kuten Power Pivotissa ja Analysis Services Tabular -malleissa, on olemassa monia erinomaisia lähteitä. Lisätietoja löydät kirjoista, valkoisista kirjoista ja blogeista sekä Microsoftin että johtavien BI-ammattilaisten kirjoittamilta. DAX Resource Center on myös erinomainen paikka aloittaa.

QuickQuiz vastaa

Syntax:

  1. Validoi ja syöttää mittarin malliin.
  2. Sulkeet [].

Functions:

  1. Pöytä ja sarakke.
  2. Yes. Kaava voi sisältää jopa 64 sisäkkäistä funktiota.
  3. Tekstifunktiot.

Context:

  1. Rivikonteksti ja suodatin konteksti.
  2. Yksi tai useampi suodatin laskelmassa, joka määrittää yhden arvon.
  3. Nykyinen riita.