Applies ToExcel for Microsoft 365 Excel 2024 Excel 2021 Excel 2019 Excel 2016

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.

Keskitymme erityisesti laskutoimituksissa käytettyjen DAX-kaavojen ymmärtämiseen. Sinun pitäisi jo tuntea sekä laskettujen sarakkeiden että mittojen peruskäsitteet (eli lasketut kentät), jotka molemmat on kuvattu ohjeen Power Pivot. Excelin luontiympäristön ja työkalujen Power Pivot pitäisi myös olla sinulle tuttua.

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 kaavoja, tutustutaan DAX-kaavasyntaksiin. Syntaksi sisältää kaavan muodostavat elementit tai yksinkertaisesti kaavan kirjoitustavan. Tarkastellaan esimerkiksi yksinkertaista DAX-kaavaa, jonka avulla luodaan uusia tietoja (arvoja) lasketun sarakkeen kullekin riville nimeltä Reunus FactSales-taulukossa: (kaavatekstin värit ovat vain havainnollistavia tarkoituksia varten)

Lasketun sarakkeen kaava

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

  1. Yhtäläisyysmerkkioperaattori (=) ilmaisee kaavan alun, ja 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 kiellettyjä merkkejä, taulukon nimi on kirjoitettava puolilainausmerkkeihin. Taulukoiden nimet on myös kirjoitettava lainausmerkkeihin, jos nimi sisältää ansi-aakkosnumeerisen merkkialueen ulkopuolisia merkkejä riippumatta siitä, tukeeko aluekohta merkistöä vai ei.

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.

Siinä se! Olet juuri luonut yksinkertaisen mutta erittäin tehokkaan DAX-kaavan. Kullekin FactSales-taulukon riville NetSales-kaava laskee arvon vähentämällä [ReturnQuantity] -sarakkeen arvon [SalesQuantity] -sarakkeen arvosta. Huomaa, miten juuri sanoimme "Kullekin riville". Tämä on välähdys toisesta erittäin tärkeästä dax-käsitteestä; rivikonteksti. Saat lisätietoja rivikontekstista myöhemmin.

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 sisäkkäin CALCULATE-funktiolle välitettynä argumenttina. 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 Laskutoimitukset-ryhmässäAutomaattinen summa - painiketta.

AutoSum-ominaisuus PowerPivotissa

Napsauta Automaattinen summa -kohdan vieressä olevaa alanuolta ja valitse sitten Keskiarvo (huomaa myös muut käytettävissä 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ämä kaavarivin painike tekee?funktiopainike

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

  3. Miten kirjoittaisit kaavan seuraavalle:DimProduct-taulukossalaskettavan UnitMargin-sarakkeen kullekin riville arvo vähentämällä UnitCost-sarakkeen arvot Yksikköhinta-sarakkeen arvoista?

Vastaukset ovat tämän ohjeaiheen lopussa.

Funktiot

Funktiot ovat ennalta määritettyjä kaavoja, jotka suorittavat laskutoimituksia käyttämällä tiettyjä arvoja, joita kutsutaan argumenteiksi, tietyssä järjestyksessä tai rakenteessa. Argumentit voivat olla muita funktioita, toista kaavaa, sarakeviittauksia, lukuja, tekstiä, totuusarvoja, kuten TOSI tai EPÄTOSI, tai vakioita.

DAX sisältää seuraavat funktioluokat: Päivämäärä- ja aikafunktiot, Tiedot, Loogiset, Matemaattiset, Tilastolliset, Teksti- ja Aikatietofunktiot. Jos excel-kaavojen funktiot ovat sinulle tuttuja, monet DAX-funktiot näyttävät samanlaisilta kuin sinä. DAX-funktiot ovat kuitenkin yksilöllisiä seuraavilla tavoilla:

  • 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 on käytettävä. Power Pivot ja SQL Server Data Toolsin taulukkomallin suunnittelutyökalut sisältävät Lisää funktio -ominaisuuden, valintaikkunan, jonka avulla voit valita funktioita luokittain ja jokaiselle funktiolle annetaan lyhyet kuvaukset.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. Vieritä FactSales-taulukossa oikeanpuoleisimpaan sarakkeeseen ja valitse sitten sarakkeen otsikossa Lisää sarake.

  2. Kirjoita kaavariville yhtäläisyysmerkki =.

  3. Napsauta Lisää funktio -painiketta. Lisää funktioTämä avaa Lisää funktio -valintaikkunan.

  4. Valitse Lisää funktio - valintaikkunassa Valitse luokka -luetteloruutu. Oletusarvoisesti Kaikki on valittuna, ja kaikki Kaikki-luokan funktiot on lueteltu alla. 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. Siirry eteenpäin ja napsauta Suodatin-luokkaa , vieritä alas Valitse funktio -kohdassa ja kaksoisnapsauta RELATED-funktiota. Sulje Lisää funktio -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-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 parhaista paikoista saada tietoja kaikista DAX-funktioista on DAX (Data Analysis Expressions) -viittaus.

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. Dax (Data Analysis Expressions) -viittaus on myös erinomainen 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.

Tarvitsetko lisäohjeita?

Haluatko lisää vaihtoehtoja?

Tutustu tilausetuihin, selaa harjoituskursseja, opi suojaamaan laitteesi ja paljon muuta.

Osallistumalla yhteisöihin voit kysyä kysymyksiä ja vastata niihin, antaa palautetta sekä kuulla lisää asiantuntijoilta, joilla on runsaasti tietoa.