DAX-kaavojen kirjoitus
Kukin mallin laskentatyyppi, laskettu taulukko, laskettu sarake tai mittari määritetään antamalla nimi, yhtäläisyysmerkki (=) ja sitten DAX-kaava. Luo mallilaskenta käyttämällä seuraavaa työpohjaa:
<Calculation name> = <DAX formula>
Esimerkiksi lasketun Lähetyspäivämäärä-taulukon määritelmä, joka monistaa Päivämäärä-taulukon tiedot, on seuraava:
Ship Date = 'Date'
DAX-kaava koostuu lausekkeista, jotka palauttavat tuloksen. Tuloksena on joko taulukko-objekti tai skalaariarvo. Lasketun taulukon kaavojen tulee palauttaa taulukko-objekti. lasketun sarakkeen ja mittarin kaavojen on palautettava skalaariarvo (yksittäinen arvo).
Kaavat kootaan käyttämällä seuraavia:
- DAX-funktiot
- DAX-operaattorit
- Viittaukset malliobjekteihin
- Vakioarvot, kuten luku 24 tai literaaliteksti "FY" (tilivuoden lyhenne)
- DAX-muuttujat
- Välilyönti
Vihje
Kun kirjoitat DAX-kaavoja Power BI Desktop, voit hyödyntää IntelliSenseä. IntelliSense on koodin kirjoituksen aputoiminto, joka luo luettelon funktioista ja malliresursseista. Kun valitset DAX-funktion, toiminto tuo näkyviin myös määritelmän ja kuvauksen. On suositeltavaa käyttää IntelliSenseä, joka mahdollistaa tarkkojen kaavojen nopean koonnin.
DAX-funktiot
Microsoft Excelin tapaan DAX on toiminnallinen kieli, joka tarkoittaa, että kaavat käyttävät funktioita tiettyjen tavoitteiden saavuttamiseksi. YLEENSÄ DAX-funktioilla on argumentteja, jotka sallivat muuttujien välittämisen. Kaavat voivat käyttää monia funktiokutsuja, ja niissä on usein sisäkkäisiä funktioita.
Kaavassa funktioiden nimien jäljessä on oltava sulkeet. Muuttujat välitetään sulkeissa.
Huomautus
Joissakin funktioissa ei ole argumentteja, tai argumentit voivat olla valinnaisia.
DAX-funktioiden käyttäminen kuvataan jäljempänä tässä moduulissa.
DAX-operaattorit
Kaavoissa käytetään myös operaattoreita, jotka voivat suorittaa aritmeettisia laskutoimituksia, vertailla arvoja, käsitellä merkkijonoja tai testata ehtoja.
DAX-operaattorit kuvataan tarkemmin jäljempänä tässä moduulissa.
Viittaukset malliobjekteihin
Kaavat voivat viitata vain kolmeen malliobjektityyppiin, jotka ovat taulukot, sarakkeet ja mittarit. Kaava ei voi viitata hierarkiaan tai hierarkiatasoon. (Muista, että hierarkiataso perustuu sarakkeeseen, joten kaava voi viitata hierarkiatason sarakkeeseen.)
Taulukkoviittaukset
Kun viittaat taulukkoon kaavassa, taulukon nimi kirjoitetaan virallisesti puolilainausmerkkeihin. Huomaa seuraavassa lasketun taulukon määrityksessä, että Päivämäärä-taulukko on kirjoitettu puolilainausmerkkeihin.
Ship Date = 'Date'
Puolilainausmerkit voidaan kuitenkin jättää pois, kun molemmat seuraavat ehdot täyttyvät:
- Taulukon nimi ei sisällä upotettuja välilyöntejä.
- Taulukon nimi ei ole DAXin käyttämä varattu sana. Kaikki DAX-funktioiden nimet ja operaattorit ovat varattuja sanoja. Date on DAX-funktion nimi, joka selittää, miksi viitattaessa taulukkoon nimeltä Date on kirjoitettava se puolilainausmerkkien sisään.
Seuraavassa lasketun taulukon määrityksessä puolilainausmerkit voidaan jättää pois viitattaessa Airport-taulukkoon :
Arrival Airport = Airport
Sarakeviittaukset
Kun viittaat kaavassa olevaan sarakkeeseen, sarakkeen nimen on oltava hakasulkeissa. Vaihtoehtoisesti sitä voi edeltää taulukon nimi. Seuraava mittarin määritelmä esimerkiksi viittaa Sales Amount -sarakkeeseen.
Revenue = SUM([Sales Amount])
Koska sarakkeiden nimet ovat yksilöllisiä taulukossa, mutta eivät välttämättä mallissa, voit muuttaa sarakeviittauksen yksiselitteiseksi kirjoittamalla sen eteen taulukon nimen. Tällaista yksiselitteistä saraketta kutsutaan täydelliseksi sarakkeeksi. Jotkin DAX-funktiot edellyttävät täydellisten sarakkeiden välittämistä.
Vihje
Kaavojen luettavuuden parantamiseksi on suositeltavaa lisätä sarakeviittauksen eteen aina sen taulukon nimi.
Edellisessä esimerkissä oleva mittarin määritelmä voidaan kirjoittaa uudelleen seuraavasti:
Revenue = SUM(Sales[Sales Amount])
Mittariviittaukset
Kun viittaat mittariin kaavassa, kuten sarakkeen nimiviittauksissa, mittayksikön nimi on kirjoitettava hakasulkeisiin. Seuraava mittarin määritelmä esimerkiksi viittaa mittareihin Revenue ja Cost.
Profit = [Revenue] - [Cost]
Jos olet aloittelija DAX-kielen käyttäjä, sarake- ja mittariviittausten lisääminen aina hakasulkeisiin voi aiheuttaa hämmennystä kaavaa lukiessasi. Kun opit DAX:n perusasiat, pystyt kuitenkin selvittämään objektityypin, koska DAX-kaavoja, sarakkeita ja mittareita käytetään eri tavoin.
Vihje
Mittariviittauksen eteen voidaan lisätä sen taulukon nimi. Mittarit ovat kuitenkin mallitason objekteja. Vaikka mittarit on määritetty aloitustaulukkoon, kyseessä on vain kosmeettinen suhde, jolla mittarit järjestetään loogisesti Kentät-ruudussa.
Tämän vuoksi on suositeltavaa lisätä sarakeviittauksen eteen aina sen taulukon nimi. Mittareiden yhteydessä toimitaan päinvastoin: On suositeltavaa, ettei mittariviittauksen eteen lisätä koskaan sen taulukon nimeä.
Lisätietoja on kohdassa Sarake- ja mittariviittaukset.
DAX-muuttujat
Kaavat voivat määrittää DAX-muuttujia tulosten tallentamista varten.
DAX-muuttujien käyttötapa ja -tilanteet kuvataan jäljempänä tässä moduulissa.
Väli
Väli viittaa merkkeihin, joiden avulla voit muotoilla kaavoista nopeasti ja helposti ymmärrettäviä. Näitä merkkejä ovat seuraavat:
- Välilyönnit
- Sarkaimet
- Rivinvaihdot
Välit ovat valinnaisia, eivätkä ne muuta kaavan logiikkaa tai heikennä suorituskykyä. On erittäin suositeltavaa ottaa käyttöön muotoilutyyli ja käyttää sitä johdonmukaisesti sekä huomioida seuraavat suositukset:
- Käytä välilyöntejä operaattoreiden välissä.
- Sisennä sisäkkäiset funktiokutsut käyttämällä sarkaimia.
- Erota funktion argumentit toisistaan käyttämällä rivinvaihtoja, erityisesti silloin, kun argumentti on liian pitkä yhdelle riville. Tällainen muotoilu helpottaa vianmääritystä, erityisesti silloin, kun kaavasta puuttuu sulje.
- Välejä kannattaa käyttää mieluummin liikaa kuin liian vähän.
Vihje
Voit kirjoittaa rivinvaihdon kaavariville painamalla Vaihto+Enter. Jos painat vain Enter-näppäintä , kaava vahvistuu.
Katso seuraavaa mittarin määritelmää, joka on kirjoitettu yhdelle riville ja joka sisältää viisi DAX-funktiokutsua:
Revenue YoY % = DIVIDE([Revenue] - CALCULATE([Revenue], SAMEPERIODLASTYEAR('Date'[Date])), CALCULATE([Revenue], SAMEPERIODLASTYEAR('Date'[Date])))
Seuraavassa esimerkissä on sama mittarin määritelmä, mutta nyt muotoiltuna, mikä helpottaa sen lukemista ja ymmärtämistä:
Revenue YoY % =
DIVIDE(
[Revenue]
- CALCULATE(
[Revenue],
SAMEPERIODLASTYEAR('Date'[Date])
),
CALCULATE(
[Revenue],
SAMEPERIODLASTYEAR('Date'[Date])
)
)
Yritä muotoilla mittaria itse. Avaa tiedosto Adventure Works DW 2020 M02.pbix Power BI Desktop -tiedosto ja laajenna Kentät-ruudussaMyynti-taulukko ja valitse sitten Tuotto vuodessa % -mittari. Käytä kaavarivillä sarkain- ja rivinvaihtomerkkejä tuottamaan sama tulos kuin edellisessä esimerkissä. Kun lisäät rivinvaihdon, muista painaa Vaihto+Enter-näppäintä.
Tätä mittarimääritystä voidaan parantaa luettavuuden ja suorituskyvyn parantamiseksi, mikä selitetään myöhemmin tässä moduulissa.
Vihje
Erinomainen muotoilutyökalu toisesta lähteestä laskutoimitusten muotoiluun on DAX Formatter. Tämän työkalun avulla voit liittää laskutoimituksen ja muotoilla sitä. Voit sitten kopioida muotoillun laskutoimituksen leikepöydälle ja liittää sen takaisin Power BI Desktop.