Pikaopas: Opi DAX-kielen perusteet puolessa tunnissa

Tämä pikaopas on tarkoitettu Excelin Power Pivot -apuohjelman tai SQL Serverin datatyökaluilla luotujen taulukkomalliprojektien uusille käyttäjille. Sen tarkoituksena on toimia nopeana ja helppona johdantona DAX-kielen (Data Analysis Expressions) käyttämisestä erilaisten perustietomallinnus- ja analyysiongelmien ratkaisemiseen. Tässä ohjeaiheessa on käsitetietoja, suoritettavia tehtäviä sekä muutama kysymys, joilla testataan opitun sisäistämistä. Kun olet käynyt tämän ohjeaiheen läpi, sinun pitäisi ymmärtää hyvin DAX-kielen peruskäsitteet alkeistasolla.

Mikä DAX on?

DAX (Data Analysis Expressions) on kokoelma funktioita, operaattoreita ja vakioita, joita voidaan käyttää kaavoissa tai lausekkeissa laskemaan ja palauttamaan yksi tai useampia arvoja. Yksinkertaisesti sanottuna DAX auttaa sinua luomaan uutta tietoa mallisi sisältämien tietojen perusteella.

Miksi DAX on tärkeä?

Työkirjan luominen ja tietojen tuominen siihen on helppoa. Voit jopa luoda pivot-taulukoita tai pivot-kaavioita, jotka näyttävät tärkeät tiedot käyttämättä yhtään DAX-kaavaa. Mutta entä jos sinun täytyy analysoida olennaisia myyntitietoja useista tuoteluokista ja erilaisilla päivämääräväleillä? Entä jos joudut yhdistämään tärkeitä varastotietoja useista taulukoista eri tietolähteistä? DAX-kaavojen avulla voit käyttää tätä ominaisuutta ja myös monia muita tärkeitä ominaisuuksia. Kun opit luomaan tehokkaita DAX-kaavoja, voit hyödyntää tietojasi mahdollisimman hyvin. Kun saat tarvitsemasi tiedot, voit alkaa ratkaista todellisia liiketoiminnan ongelmia, jotka vaikuttavat tulokseen. Tämä on liiketoimintatiedon hallintaa, ja DAX auttaa sinua onnistumaan siinä.

Edellytykset

Kaavojen luominen Microsoft Excelissä voi olla sinulle jo tuttua. Tästä tietämyksestä on apua DAX-kielen ymmärtämisessä, mutta vaikka sinulla ei olisikaan kokemusta Excel-kaavoista, tässä kuvattujen käsitteiden avulla pääset heti alkuun DAX-kaavojen luomisessa ja todellisten liiketoimintatiedon hallintaongelmien ratkaisemisessa.

Tässä keskitytään nimenomaan laskutoimituksissa käytettävien DAX-kaavojen ymmärtämiseen. Sekä laskettujen sarakkeiden että mittayksiköiden (kutsutaan myös lasketuiksi kentiksi) peruskäsitteiden pitäisi olla jo tuttuja. Niitä molempia kuvataan Power Pivotin ohjeessa. Myös Power Pivotin Excelin sisällöntuottamistoimintoympäristön ja -työkalujen pitäisi olla sinulle tuttuja.

Esimerkkityökirja

Paras tapa oppia DAX-kieltä on luoda joitakin peruskaavoja, käyttää niitä oikeiden tietojen kanssa ja nähdä tulokset itse. Tässä käytetyissä esimerkeissä ja tehtävissä on käytetty Contoson DAX-mallikaavoja sisältävää .xlsx-työkirjaa. Voit ladata työkirjan osoitteesta http://go.microsoft.com/fwlink/?LinkID=237472&clcid=0x409. Kun olet ladannut työkirjan tietokoneeseesi, avaa se ja avaa sen jälkeen Power Pivot -ikkuna.

Aloitetaan!

Kerromme DAX-kielestä kolmen hyvin tärkeän peruskäsitteen avulla: syntaksi, funktiot ja konteksti. DAX-kielessä on tietysti muitakin tärkeitä käsitteitä, mutta näiden kolmen käsitteen ymmärtäminen luo parhaan perustan DAX-taitojen kehittämiselle.

Syntaksi

Ennen kuin luot omia kaavojasi, tarkastellaan DAX-kaavojen syntaksia. Syntaksin sisältämät erilaiset elementit muodostavat kaavan. Yksinkertaisesti sanottuna kyse on kaavan kirjoittamistavasta. Katsotaan esimerkiksi yksinkertaista DAX-kaavaa, jota käytetään uusien tietojen (arvot) luomiseen Margin-nimisen lasketun sarakkeen kullekin riville FactSales-taulukossa. Kaavan tekstin värit ovat vain havainnollistamista varten.

Lasketun sarakkeen kaava

Tämä kaavan syntaksi sisältää seuraavat elementit:

  1. Yhtäläisyysmerkkioperaattori (=) ilmaisee kaavan alkua. Kun tämä kaava lasketaan, se palauttaa tuloksen tai arvon. Kaikki kaavat, jotka laskevat arvon, alkavat yhtäläisyysmerkillä.

  2. Viitattu sarake [SalesAmount] sisältää arvot, joista haluamme vähentää. Kaavassa olevan sarakeviittauksen ympärillä on aina hakasulkeet []. DAX-kaava viittaa aina sarakkeeseen, toisin kuin Excel-kaavat, jotka viittaavat soluun.

  3. Vähennyslaskun (-) matemaattinen operaattori.

  4. Viitattu sarake [TotalCost] sisältää arvot, jotka haluamme vähentää [SalesAmount]-sarakkeen arvoista.

Kun yritetään ymmärtää DAX-kaavan lukemista, on usein helpompaa eritellä kukin elementti kielellä, jolla ajatellaan ja jota puhutaan päivittäin. Voit esimerkiksi lukea tämän kaavan seuraavasti:

Laske FactSales-taulukossa lasketun Margin-sarakkeen kullekin riville (=)-arvo vähentämällä (-)-arvot [TotalCost]-sarakkeessa [SalesAmount]-sarakkeen arvoista.

Tarkastellaanpa toisentyyppistä kaavaa, jota käytetään mittayksikössä:

Lasketun sarakkeen kaava

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

  1. Mittayksikön nimi on Sum of Sales Amount. Mittayksiköiden kaavat voivat sisältää mittayksikön nimen, jonka jälkeen tulee kaksoispiste ja tämän jälkeen laskukaava.

  2. Yhtäläisyysmerkkioperaattori (=) ilmaisee laskukaavan alun. Kun kaava lasketaan, se palauttaa tuloksen.

  3. SUM-funktio laskee yhteen kaikki [SalesAmount]-sarakkeen numerot. Funktioista on lisätietoja jäljempänä.

  4. Sulkeet () ympäröivät yhtä tai useampaa argumenttia. Kaikki funktiot vaativat vähintään yhden argumentin. Argumentti välittää arvon funktiolle.

  5. Viitattu taulukko FactSales.

  6. Viitattu sarake [SalesAmount] FactSales-taulukossa. Tämän argumentin avulla SUM-funktio tietää, mihin sarakkeeseen SUM koostetaan.

Voit lukea tämän kaavan seuraavasti:

Laske mittayksikölle nimeltä Sum of Sales Amount (=) arvojen SUMMA [SalesAmount]-sarakkeessa FactSales-taulukossa.

Kun tämä mittayksikkö sijoitetaan pivot-taulukon kenttäluettelon Arvot-pudotusalueelle, se laskee ja palauttaa pivot-taulukon kunkin solun määrittämät arvot, esimerkiksi Matkapuhelimia Suomessa.

Huomaa, että tässä kaavassa on joitakin eroja verrattuna Margin-nimisessä lasketussa sarakkeessa käyttämäämme kaavaan. Tarkemmin sanottuna otimme käyttöön funktion, SUM. Funktiot ovat ennalta laadittuja kaavoja, joiden avulla on helpompaa tehdä monimutkaisia laskutoimituksia ja käsittelytoimintoja numeroiden, päivämäärien, kellonaikojen, tekstin ja muun kanssa. Funktioista on lisätietoja jäljempänä.

Toisin kuin aiemmassa Margin-nimisessä lasketussa sarakkeessa, huomaat tässä, että sarakkeen [SalesAmount] edellä oli taulukko FactSales, johon sarake kuuluu. Tämä tunnetaan täydellisenä sarakkeen nimenä, sillä se sisältää sarakkeen nimen, jonka edellä on taulukon nimi. Sarakkeet, joihin viitataan samassa taulukossa, eivät vaadi taulukon nimen sisällyttämistä kaavaan. Tämän ansiosta pitkät kaavat, jotka viittaavat moniin sarakkeisiin, ovat lyhyempiä ja helpompia lukea. Hyvä käytäntö on kuitenkin aina sisällyttää taulukon nimi mittayksikön kaavoihin, vaikka se olisi samassa taulukossa.

Huomautus: Jos taulukon nimi sisältää välilyöntejä, varattuja avainsanoja tai merkkejä, joita ei sallita, taulukon nimi on ympäröitävä puolilainausmerkein. Taulukoiden nimet on sisällytettävä lainausmerkkeihin myös silloin, kun nimi sisältää aakkosnumeeriseen ANSI-merkistöön kuulumattomia merkkejä. Tähän ei vaikuta se, tukevatko aluekohtaiset asetukset merkistöä.

On hyvin tärkeää, että kaavojen syntaksi on oikein. Jos syntaksi ei ole oikein, ohjelma palauttaa useimmiten syntaksivirheen. Toisinaan syntaksi voi olla virheetön, mutta palautetut arvot eivät ole odotettuja. Power Pivotiin (ja SQL Serverin datatyökaluihin) sisältyy IntelliSense, jonka avulla on helpompi luoda syntaktisesti virheettömiä kaavoja, sillä toiminto auttaa käyttäjää valitsemaan oikeat elementit.

Yksinkertaisen kaavan luominen. Tämän tehtävän avulla opit ymmärtämään paremmin kaavan syntaksia ja kaavarivin IntelliSense-ominaisuuden hyödyntämistä.

Tehtävä: Yksinkertaisen lasketun sarakkeen kaavan luominen

  1. Jos et ole vielä Power Pivot -ikkunassa, napsauta Excelin Power Pivot-valintanauhassa Power Pivot Ikkuna.

  2. Valitse Power Pivot -ikkunassa FactSales-taulukko (välilehti).

  3. Siirry äärimmäisenä oikealla olevaan sarakkeeseen ja valitse sarakeotsikossa Lisää sarake.

  4. Napsauta kaavariviä mallin suunnitteluikkunan yläreunassa.

    PowerPivotin kaavarivi

    Kohdistin näkyy nyt kaavarivillä. Kaavariville voi kirjoittaa lasketun sarakkeen tai lasketun kentän kaavan.

    Tarkastellaan hetki kaavarivin vasemmalla puolella olevia kolmea painiketta.

    Kaavarivi

    Kun kohdistin on aktiivinen kaavarivillä, nuo kolme painiketta aktivoituvat. Vasemmanpuoleisin painike X on peruutuspainike. Napsauta sitä. Kohdistin ei enää näy kaavarivillä, eivätkä peruutuspainike ja valintamerkkipainike ole enää näkyvissä. Napsauta kaavariviä uudelleen. Peruutuspainike ja valintamerkkipainike tulevat uudelleen näkyviin. Tämä tarkoittaa, että voit aloittaa kaavan syöttämisen.

    Valintamerkkipainike on kaavan tarkistuspainike. Sillä ei ole käyttöä, ennen kuin olet syöttänyt kaavan. Palaamme tähän hieman jäljempänä.

    Napsauta Fx-painiketta. Huomaat, että näkyviin tulee uusi valintaikkuna: Funktion lisääminen -valintaikkuna. Funktion lisääminen -valintaikkuna on helpoin tapa aloittaa DAX-kaavan syöttäminen. Lisäämme funktion kaavaan, kun luomme mittayksikön hieman jäljempänä, mutta nyt sinun ei tarvitse lisätä funktiota lasketun sarakkeen kaavaan. Sulje Funktion lisääminen -valintaikkuna.

  5. Kirjoita kaavariville yhtäläisyysmerkki = ja sen jälkeen vasen hakasulku [. Huomaat, että FactSales-taulukkoon tulee näkyviin pieni ikkuna, jossa ovat kaikki sarakkeet. Näin IntelliSense toimii.

    Koska lasketut sarakkeet luodaan aina siihen aktiiviseen taulukoon, jossa olet, ei sarakkeen nimen edessä tarvitse olla taulukon nimeä. Siirry alas ja kaksoisnapsauta [SalesQuantity]-kohtaa. Voit myös siirtyä haluamaasi sarakkeen nimeen ja painaa sitten sarkainta.

    Kohdistin on nyt aktiivinen [SalesQuantity]-kohdan oikealla puolella.

  6. Kirjoita välilyönti ja kirjoita sitten vähennyslaskuoperaattori - (miinusmerkki) ja sen jälkeen toinen välilyönti.

  7. Kirjoita nyt toinen vasen hakasulku [. Valitse tällä kertaa [ReturnQuantity]-sarake ja paina Enter-näppäintä.

    Jos saat virheilmoituksen, tarkastele syntaksiasi huolellisesti. Vertaa sitä tarvittaessa aiemmin kuvatun Margin-nimiseen lasketun sarakkeen kaavaan.

    Kun olet painanut Enter-näppäintä kaavan viimeistelemiseksi, Power Pivot -ikkunan alalaidan tilariville tulee näkyviin teksti Lasketaan. Toiminto etenee nopeasti, vaikka uusia arvoja lasketaan yli kolmelle miljoonalle riville.

  8. Napsauta sarakeotsikkoa hiiren kakkospainikkeella ja nimeä sarake uudelleen NetSales-nimiseksi.

Olet juuri luonut yksinkertaisen mutta hyvin tehokkaan DAX-kaavan. NetSales-kaava laskee kullekin FactSales-taulukon riville arvon vähentämällä [ReturnQuantity]-sarakkeen arvon [SalesQuantity]-sarakkeen arvosta. Huomaa käsite "kullekin riville". Tämä on vilkaisu toiseen hyvin tärkeään DAX-kielen käsitteeseen eli rivikontekstiin. Rivikontekstista on lisätietoja jäljempänä.

Vihje: 

Kun DAX-kaavaan kirjoitetaan operaattoria, on hyvin tärkeää ymmärtää käytettävien argumenttien tietotyyppi. Jos esimerkiksi kirjoitat seuraavan kaavan, = 1 & 2, palautettu arvo on tekstiarvo "12". Tämä johtuu siitä, että et-merkkioperaattoria (&) käytetään tekstin yhdistämiseen. DAX tulkitsee tämän kaavan seuraavasti: laske tulos ottamalla arvo 1 tekstinä ja lisäämällä arvo 2 tekstinä. Jos kirjoitat = 1 + 2, DAX lukee kaavan seuraavasti: laske tulos ottamalla numeroarvo 1 ja lisäämällä numeroarvo 2. Tuloksena on tietysti "3", numeroarvo. DAX laskee tulokseksi saatavat arvot kaavan operaattorin perusteella, ei argumentissa käytettävien sarakkeiden tietotyyppien perusteella. DAX-kielen tietotyypit ovat hyvin tärkeitä, mutta tämän pikaoppaan soveltamisalueen ulkopuolella. Katso lisätietoja DAX-kaavojen tietotyypeistä ja operaattoreista DAX-viitteestä (http://go.microsoft.com/fwlink/?LinkId=239769&clcid=0x409) Books Onlinessa.

Otetaanpa toinen esimerkki. Tällä kertaa luot mittayksikön kirjoittamalla kaavan ja käyttämällä IntelliSenseä. Älä ole huolissasi, vaikket ymmärräkään kaavaa täysin. On tärkeää oppia luomaan kaava käyttämällä useita elementtejä yhdessä oikeassa syntaksissa.

Tehtävä: Mittayksikön kaavan luominen

  1. Napsauta FactSales-taulukossa mitä tahansa laskenta-alueella olevaa tyhjää solua. Tämä tyhjien solujen alue on Power Pivot -ikkunassa heti taulukon alapuolella.

PowerPivotin laskenta-alue

  1. Kirjoita kaavariville nimi Previous Quarter Sales:

  2. Aloita laskukaava kirjoittamalla yhtäläisyysmerkki =.

  3. Kirjoita muutama ensimmäinen kirjain CAL ja kaksoisnapsauta sitten funktiota, jota haluat käyttää. Tässä kaavassa haluat käyttää CALCULATE-funktiota.

  4. Kirjoita alkusulkumerkki ( osoittamaan CALCULATE-funktioon välitettävien argumenttien alkua.

    Huomaa, että alkusulkumerkin kirjoittamisen jälkeen IntelliSense näyttää sinulle CALCULATE-funktioon vaadittavat argumentit. Lisätietoa argumenteista on hieman jäljempänä.

  5. Kirjoita FactSales-taulukon pari ensimmäistä kirjainta ja kaksoisnapsauta sitten avattavassa luettelossa FactSales[Sales].

  6. Kirjoita pilkku (,) ensimmäisen suodattimen määrittämiseksi, kirjoita sitten PRE ja kaksoisnapsauta PREVIOUSQUARTER-funktiota.

    PREVIOUSQUARTER-funktion valinnan jälkeen näkyviin tulee toinen alkusulkumerkki merkkinä siitä, että tarvitaan toinen argumentti, tällä kertaa PREVIOUSQUARTER-funktiolle.

  7. Kirjoita pari ensimmäistä kirjainta Dim ja kaksoisnapsauta sitten DimDate[DateKey].

  8. Sulje sekä PREVIOUSQUARTER-funktiolle että CALCULATE-funktiolle välitettävä argumentti kirjoittamalla kaksi loppusulkumerkkiä )).

    Kaavan pitäisi näyttää seuraavanlaiselta:

    Previous Quarter Sales:=CALCULATE(FactSales[Sales], PREVIOUSQUARTER(DimDate[DateKey]))

  9. Vahvista kaava napsauttamalla kaavan tarkistuspainiketta kaavarivillä. Jos saat virheilmoituksen, tarkista syntaksin jokainen elementti.

Hienoa! Onnistuit juuri luomaan mittayksikön DAX-kielen avulla, mikä ei ole helppo tehtävä. Tämä kaava laskee edellisen neljänneksen kokonaismyynnin pivot-taulukossa tai pivot-kaaviossa määritettyjen suodattimien mukaan.

Tutustuit juuri useisiin tärkeisiin DAX-kaavoja koskeviin seikkoihin. Ensinnäkin tässä kaavassa oli kaksi funktiota. Huomaa, että PREVIOUSQUARTER-funktio on asetettu sisäkkäin CALCULATE-funktiolle välitettäväksi argumentiksi. DAX-kaavoissa voi olla enintään 64 sisäkkäistä funktiota. On epätodennäköistä, että jossain kaavassa olisi niin monta sisäkkäistä funktiota. Tällaisen kaavan luominen ja sen virheiden korjaaminen olisi hyvin vaikeaa, eikä kaava varmaankaan olisi kovin nopea.

Tässä kaavassa käytit myös suodattimia. Suodattimilla rajataan laskettavia asioita. Tässä tapauksessa valitsit yhden suodattimen argumentiksi, joka on itse asiassa toinen funktio. Suodattimista on lisätietoja jäljempänä.

Lisäksi käytit CALCULATE-funktiota. Se on yksi DAX-kielen tehokkaimmista funktioista. Kun luot tietomalleja ja luot monimutkaisempia kaavoja, käytät todennäköisesti tätä funktiota monta kertaa. CALCULATE-funktiosta kertominen ei kuulu tämän pikaoppaan piiriin, mutta kun tietämyksesi DAX-kielestä kasvaa, kiinnitä erityistä huomiota kyseiseen funktioon.

Huomautus: Tavallisesti aikatietojen funktioiden DAX-kaavoissa käyttämisen edellytyksenä on, että määrität yksilöllisen päivämääräsarakkeen Merkitse päivämäärätaulukoksi -valintaikkunan avulla. Contoson DAX-mallikaavoja sisältävässä .xlsx-työkirjassa DimDate-taulukon DateKey-sarake on valittu yksilölliseksi päivämääräsarakkeeksi.

Lisäpiste

Saatat miettiä, mikä on yksinkertaisin DAX-kaava, jonka voit luoda. Se on kaava, jota sinun ei tarvitse luoda. Voit tehdä tämän käyttämällä vakiokoostefunktiota mittayksikössä. Miltei minkä tahansa tietomallin on suodatettava ja laskettava koostettuja tietoja. Esimerkiksi edellä mainittua Sum of Sales Amount -mittayksikön SUM-funktiota käytetään tietyn sarakkeen kaikkien numeroiden laskemiseen yhteen. DAX-kaavassa on useita muitakin funktioita, jotka koostavat arvoja. AutoSum-toiminnon avulla voit luoda vakiokoosteita käyttäviä kaavoja automaattisesti.

Lisäpistetehtävä: Mittayksikön kaavan luominen AutoSum-toiminnon avulla

  1. Vieritä FactSales-taulukossa ReturnQuantity-sarakkeeseen ja napsauta sitten sarakeotsikkoa koko sarakkeen valitsemiseksi.

  2. Napsauta Aloitus-välilehden valintanauhan Laskentatoimitukset-ryhmässä AutoSum-painiketta.

AutoSum-ominaisuus PowerPivotissa

  1. Napsauta alanuolta AutoSum-kohdan vieressä ja napsauta sitten Keskiarvo (huomaa myös muut käytettävissäsi olevat vakiokoostefunktiot).
    Tällöin luodaan heti uusi laskettu kenttä nimellä Average of ReturnQuantity:, ja sen jälkeen tulee kaava =AVERAGE([ReturnQuantity]).

Eikö ollutkin helppoa? Kaikki luomasi kaavat eivät ole yhtä yksinkertaisia. AutoSum-ominaisuuden avulla voit luoda kaavoja nopeasti ja helposti käyttämällä vakiokoostelaskutoimituksia.

Tämän avulla sinun pitäisi ymmärtää melko hyvin, mistä DAX-kaavoissa käytettävässä syntaksissa on kyse. Tutustuit lisäksi joihinkin todella upeisiin ominaisuuksiin, kuten IntelliSense ja AutoSum, joiden avulla luot kaavoja nopeasti, helposti ja tarkasti. Toki voit oppia syntaksista vielä paljon enemmän. Hyödyllistä lisätietoa on DAX-viitetiedoissa tai SQL Books Online -resursseissa.

Testaa tietosi syntaksista

  1. Mitä tällä kaavarivin painikkeella tehdään?
    funktiopainike

  2. Mitä DAX-kaavassa on aina sarakkeen nimen ympärillä?

  3. Miten kirjoitat kaavan seuraavaa varten:
    Laske DimProduct-taulukon lasketun UnitMargin-sarakkeen kunkin rivin arvo vähentämällä arvot UnitCost-sarakkeessa UnitPrice-sarakkeen arvoista.

Vastaukset ovat tämän ohjeaiheen lopussa.

Funktiot

Funktiot ovat ennalta määritettyjä kaavoja, jotka suorittavat laskutoimituksia. Nämä laskutoimitukset perustuvat tiettyihin arvoihin, joita kutsutaan argumenteiksi ja joiden järjestys tai rakenne on tietynlainen. Argumentit voivat olla muita funktioita, muita kaavoja, sarakeviittauksia, numeroita, tekstiä ja loogisia arvoja, kuten TRUE tai FALSE tai vakioita.

DAX sisältää seuraavat funktioluokat: päivämäärä- ja aikafunktiot, tietofunktiot, loogiset, matemaattiset ja tilastolliset funktiot, tekstifunktiot ja aikatietojen funktiot. Jos funktiot ovat sinulle tuttuja Excel-kaavoista, monet DAX-kielen funktiot vaikuttavat vastaavanlaisilta. DAX-funktiot ovat kuitenkin ainutlaatuisia seuraavin tavoin:

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

  • Jos laskutoimituksia on mukautettava rivikohtaisesti, voit tiettyjen DAX-funktioiden avulla suorittaa kontekstin mukaan vaihtelevia laskutoimituksia käyttämällä nykyistä rivin arvoa tai liittyvää arvoa eräänlaisena argumenttina. Kontekstista on lisätietoja jäljempänä.

  • DAX sisältää monia funktioita, jotka palauttavat arvon sijasta taulukon. Taulukkoa ei näytetä, mutta sitä käytetään luomaan syötteitä muille funktioille. Voit esimerkiksi noutaa taulukon ja laskea sitten sen eri arvot tai laskea dynaamisia summia suodatetuissa taulukoissa tai sarakkeissa.

  • DAX sisältää erilaisia aikatietojen funktioita. Näiden funktioiden avulla voit määrittää tai valita päivämäärävälejä ja suorittaa näihin perustuvia dynaamisia laskutoimituksia. Voit esimerkiksi verrata rinnakkaisten vuosineljännesten summia.

Joskus on vaikea tietää, mitä funktioita kaavassa saatetaan tarvita. Power Pivotissa sekä SQL Serverin datatyökalujen taulukkotilan suunnittelutoiminnossa on funktion lisäystoiminto. Se on valintaikkuna, jonka avulla voit valita funktioita luokittain ja jossa on lyhyt kuvaus kustakin funktiosta.

Lisää funktio

Luodaan uusi kaava, jossa on funktion lisäämisominaisuutta käyttämällä valitsemasi funktio:

Tehtävä: Funktion lisääminen kaavaan funktion lisäämisominaisuutta käyttämällä

  1. Siirry FactSales-taulukossa äärimmäisenä oikealla olevaan sarakkeeseen ja valitse sarakeotsikossa Lisää sarake.

  2. Kirjoita kaavariville yhtäläisyysmerkki =.

  3. Napsauta Lisää funktio -painiketta. Lisää funktio Funktion lisääminen -valintaikkuna aukeaa.

  4. Napsauta Funktion lisääminen -valintaikkunassa Valitse luokka -luetteloruutua. Oletusarvoisesti valintana on Kaikki, ja kaikki funktiot Kaikki-luokassa luetellaan alapuolella. Siinä on paljon funktioita, joten funktioita kannattaa suodattaa, jotta haluamasi tyyppisen funktion löytäminen helpottuu.

  5. Tätä kaavaa varten halutaan palauttaa joitakin tietoja, jotka ovat jo toisessa taulukossa. Tähän käytetään Suodatin-luokkaan kuuluvaa funktiota. Valitse Suodatin-luokka ja valitse sen jälkeen Valitse funktio, siirry alas ja kaksoisnapsauta RELATED-funktiota. Sulje Funktion lisääminen -valintaikkuna valitsemalla OK.

  6. Käytä IntelliSenseä apuna DimChannel[ChannelName]-sarakkeen löytämisessä ja valitsemisessa.

  7. Sulje kaava ja paina Enter-näppäintä.

  8. Kun olet painanut Enter-näppäintä kaavan viimeistelemiseksi, Power Pivot -ikkunan alalaidan tilarivillä näkyy teksti Lasketaan. Olet luonut uuden sarakkeen FactSales-taulukkoon käyttämällä DimChannel-taulukon kanavatietoja.

  9. Nimeä sarake uudelleen Channel-nimiseksi.

    Kaavan pitäisi näyttää tältä: =RELATED(DimChannel[ChannelName])

Tutustuit juuri toiseen erittäin tärkeään DAX-kielen funktioon, RELATED-funktioon. RELATED-funktio palauttaa arvoja toisesta taulukosta. RELATED-funktion käyttämisen edellytyksenä on, että käsittelemäsi taulukon ja noudettavia tietoja sisältävän taulukon väillä on suhde. RELATED-funktion käyttömahdollisuudet ovat valtaisat. Tässä tapauksessa voit nyt sisällyttää FactSales-taulukon jokaiseen myyntitapahtumaan myyntikanavan. Nyt voit piilottaa DimChannel-taulukon pivot-taulukon kenttäluettelosta, mikä helpottaa luettelossa siirtymistä ja vain tärkeimpien tarvittavien tietojen tarkastelua. Edellä kuvan CALCULATE-funktion lailla myös RELATED-funktio on hyvin tärkeä, ja käytät sitä todennäköisesti monta kertaa.

Kuten huomaat, DAX-kielen funktioiden avulla voi luoda hyvin tehokkaita kaavoja. Tässä käsiteltiin vain funktioiden perusteita. Kun DAX-taitosi paranevat, voit luoda kaavoja käyttäen monia eri funktioita. Yksi parhaimmista kaikkia DAX-funktioita koskevia tarkempia tietoja sisältävistä resursseista on Tietoja DAX (Data Analysis Expressions) -kielestä.

Testaa tietosi funktioista

  1. Mihin funktio viittaa aina?

  2. Voiko kaava sisältää enemmän kuin yhden funktion?

  3. Mitä funktioluokkaa sinä käyttäisit kahden tekstimerkkijonon liittämiseen yhdeksi merkkijonoksi?

Vastaukset ovat tämän ohjeaiheen lopussa.

Konteksti

Konteksti on yksi niistä DAX-käsitteistä, joiden ymmärtäminen on hyvin tärkeää. DAX-kielessä on kahdentyyppisiä konteksteja: rivikonteksti ja suodatinkonteksti. Tarkastellaan ensin rivikontekstia.

Rivikonteksti

Rivikontekstiksi ymmärretään tavallisesti nykyinen rivi. Muistatko esimerkiksi Margin-nimisen lasketun sarakkeen, joka mainittiin edellä, kun tutustuttiin syntaksiin? Kaava =[SalesAmount] - [TotalCost] laskee arvon Margin-sarakkeeseen taulukon jokaiselle riville. Kunkin rivin arvot lasketaan kahden muun sarakkeen, [SalesAmount] ja [TotalCost], samalla rivillä olevista arvoista. DAX voi laskea arvot Margin-sarakkeen kullekin riville, koska sillä on konteksti: se ottaa jokaista riviä varten [TotalCost]-sarakkeen arvot ja vähentää nämä [SalesAmount]-sarakkeen arvoista.

Alla näkyvässä valitussa solussa nykyisen rivin arvo $49.54 laskettiin vähentämällä [TotalCost]-sarakkeen arvo $51.54 [SalesAmount]-sarakkeen arvosta $101.08.

Rivikonteksti PowerPivotissa

Rivikontekstia käytetään muuallakin kuin lasketuissa sarakkeissa. Rivikontekstia käytetään myös silloin, kun kaavassa on funktio, joka käyttää suodattimia taulukon yksittäisen rivin tunnistamiseen. Funktio käyttää luontaisesti rivikontekstia jokaiseen sen taulukon riviin, jota se suodattaa. Tämäntyyppistä rivikontekstia sovelletaan useimmiten mittayksiköihin.

Suodatinkonteksti

Suodatinkonteksti on hieman vaikeampi ymmärtää kuin rivikonteksti. Suodatinkontekstin voi helpoiten ymmärtää seuraavasti: yksi tai useampi suodatin, jota käytetään tuloksen tai arvon määrittävässä laskutoimituksessa.

Suodatinkontekstia ei käytetä rivikontekstin sijasta, vaan sitä käytetään rivikontekstin lisäksi. Jos esimerkiksi haluat rajata laskutoimitukseen sisällytettäviä arvoja tarkemmin, voit käyttää suodatinkontekstia, joka määrittää paitsi rivikontekstin myös vain tietyn arvon (suodattimen) kyseisessä rivikontekstissa.

Suodatinkontekstia näkee helpoimmin pivot-taulukoissa. Kun esimerkiksi lisäät arvoalueelle TotalCost ja lisäät sen jälkeen vuoden ja alueen riveihin tai sarakkeisiin, määrität suodatinkontekstin, joka valitsee tietojen alijoukon antamasi tietyn vuoden ja alueen perusteella.

Miksi suodatinkonteksti on niin tärkeä DAX-kielelle? Suodatinkontekstia on helpointa käyttää lisäämällä sarake- ja riviotsikoita ja osittajia pivot-taulukkoon, mutta suodatinkontekstia voidaan myös käyttää DAX-kaavassa määrittämällä suodatin, joka käyttää funktioita kuten ALL, RELATED, FILTER, CALCULATE, käyttämällä suhteita ja käyttämällä muita mittayksiköitä ja sarakkeita. Tarkastellaanpa esimerkiksi seuraavaa kaavaa StoreSales-nimisessä mittayksikössä:

Kaava

Tämä kaava on selvästi paljon monimutkaisempi kuin jotkin muut näkemäsi kaavat. Tämä kaava on helpompi ymmärtää, kun se eritellään samalla tavalla kuin muut kaavat edellä.

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

  1. Mittayksikön nimi StoreSales, jonka jälkeen tulee kaksoispiste :.

  2. Yhtäläisyysmerkkioperaattori (=) ilmaisee kaavan alun.

  3. CALCULATE-funktio laskee argumenttina lausekkeen kontekstissa, jota on muutettu määritetyillä suodattimilla.

  4. Kaarisulkeet () ympäröivät yhtä tai useampaa argumenttia.

  5. Mittayksikkö [Sales] samassa taulukossa lausekkeena. Sales-mittayksikössä on kaava: =SUM(FactSales[SalesAmount]).

  6. Kukin suodatin erotellaan pilkulla (,).

  7. Viitattu sarake ja tietty arvo DimChannel[ChannelName] ="Store" suodattimena.

Tämä kaava varmistaa, että vain Sales-mittayksikön suodattimena määrittämät myyntiarvot lasketaan vain DimChannel[ChannelName]-sarakkeen sellaisille riveille, joissa on suodattimena ”Store”-arvo.

Kuten voit kuvitella, mahdollisuus määrittää suodatinkonteksteja kaavassa tarjoaa valtaisaa ja tehokasta käyttöpotentiaalia. Mahdollisuus viitata vain tiettyyn arvoon liittyvässä taulukossa on vain yksi esimerkki siitä. Älä ole huolissasi, vaikket ymmärräkään kontekstia heti täysin. Kun luot omia kaavojasi, opit paremmin ymmärtämään kontekstia ja sen tärkeyttä DAX-kielessä.

Testaa tietosi kontekstista

  1. Mitkä ovat kaksi kontekstityyppiä?

  2. Mikä suodatinkonteksti on?

  3. Mikä rivikonteksti on?

Vastaukset ovat tämän ohjeaiheen lopussa.

Yhteenveto

Nyt kun ymmärrät perustasolla DAX-kielen tärkeimmät käsitteet, voit alkaa itse luoda DAX-kaavoja laskettuihin sarakkeisiin ja mittayksiköihin. DAX-kielen oppiminen voi aluksi tuntua hankalalta, mutta käytettävissäsi on monia resursseja. Luettuasi tämän ohjeaiheen muutamaan kertaan ja kokeiltuasi muutamalla omalla kaavalla itse opit lisää muista DAX-käsitteistä ja -kaavoista, jotka voivat auttaa ratkaisemaan omaan liiketoimintaasi liittyviä haasteita. Käytettävissäsi on monia DAX-resursseja Power Pivotin ohjeessa, SQL Server Books Online -sivustossa ja sekä Microsoftin että johtavien liiketoimintatiedon hallinnan ammattilaisten blogeissa. DAX Resource Center Wiki (http://social.technet.microsoft.com/wiki/contents/articles/dax-resource-center.aspx) -verkkosivustosta on hyvä lähteä liikkeelle. Myös Tietoja DAX (Data Analysis Expressions) -kielestä on hyvä resurssi. Tallenna se selaimen suosikkeihin.

DAX in the BI Tabular Model whitepaper -tiedotteessa, joka on ladattavissa osoitteessa (http://go.microsoft.com/fwlink/?LinkID=237472&clcid=0x409) luodaan yksityiskohtaisempi katsaus tässä ohjeaiheessa esiteltyihin käsitteisiin sekä moniin muihin kehittyneempiin käsitteisiin ja kaavoihin. Tiedotteessa käytetään samaa Contoson DAX-mallikaavoja sisältävää .xlsx-työkirjaa kuin tässä ohjeaiheessa.

Testin vastaukset

Syntaksi:

  1. Avaa funktion lisäämisominaisuuden.

  2. Hakasulkeet [].

  3. =[UnitPrice] - [UnitCost]

Funktiot:

  1. Taulukko ja sarake.

  2. Kyllä. Kaavassa voi olla enintään 64 sisäkkäistä funktiota.

  3. Tekstifunktiot.

Konteksti:

  1. Rivikonteksti ja suodatinkonteksti.

  2. Yksi tai useampi suodatin laskutoimituksessa, joka määrittää yksittäisen arvon.

  3. Nykyinen rivi.

Kehitä taitojasi
Tutustu koulutusmateriaaliin
Saat uudet ominaisuudet ensimmäisten joukossa
Liity Office Insider -käyttäjiin

Oliko näistä tiedoista hyötyä?

Kiitos palautteesta!

Kiitos palautteestasi! Näyttää siltä, että Office-tukiedustajamme avusta voi olla sinulle hyötyä.

×