DAX-kaavojen kirjoitus

Valmis

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:

  1. Taulukon nimi ei sisällä upotettuja välilyöntejä.
  2. 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.