Microsoft aktivoi Power BI Desktopiin talvella 2024 uuden helpomman tavan toteuttaa laskentalogiikkaa. Uusia kaavoja kutsutaan visualisointikohtaisiksi kaavoiksi (visual calculations). Kutsun niitä tässä artikkelissa lyhyesti visukohtaisiksi kaavoiksi tai vielä lyhyemmin visukaavoiksi. Kerron mitä ne ovat, miten niitä laaditaan ja miten niiden avulla voi helpottaa raportointia. Löydät artikkelin lopusta myös linkin haastatteluun, jossa yksi DAX-kielen kehittäjistä kertoo aiheesta lisää.
Perinteiset kaavasarakkeet ja mittarit
Jotta ymmärtäisi parhaiten mitä visukohtaiset kaavat ovat ja miksi ne on kehitetty, on hyvä tuntea, millaisia kaavalajeja Power BI:ssä on tähän asti ollut.
Vertailu on tarpeen siitäkin syystä, että kaikkia kaavoja ei pysty toteuttamaan visukohtaisesti, joten on hyvä tunnistaa milloin niistä on hyötyä ja mihin tarvitset edelleen tavallisia mittareita.
Power BI:ssä on voinut luoda DAX-kielellä perinteisiä 1) kaavasarakkeita ja 2) mittareita. Näiden lisäksi DAX-kielellä on voinut luoda myös kyselyitä ja tauluja, mutta ne sivuutetaan tässä artikkelissa, sillä ne eivät liity tämän artikkelin aiheeseen.
Kaavasarake (calculated column)
on tauluun luotu kaava, joka laskee tuloksen jokaiselle taulun riville. Kaavasarakkeet ja niiden rivikohtaiset tulokset tallentuvat tietomallin mukana ikäänkuin ne olisivat mitä tahansa tauluissa olevia sarakkeita. Esimerkiksi seuraava Yhteensä-sarakekaava laskee Myynti-taulun jokaiselle riville Kpl-ja Yksikköhinta-sarakkeiden tulon:
Mittari (measure)
on tietomalliin luotu kaava, joka laskee yhteenvetotuloksen, kuten summan, keskiarvon tai lukumäärän. Kun Power BI:ssä laaditaan mittari, tietomalliin tallentuu vain mittariin kirjoitettu koodi, ei sen laskemia tuloksia. Kun mittari sijoitetaan esimerkiksi kuukausittaiseen visualisointiin, mittari laskee tuloksen kullekin kuukaudelle eli kunkin kuukauden kontekstissa reaaliaikaisesti, kun käyttäjä tarkastelee raporttia ja tekee erilaisia valintoja.
Alla on kaksi mittaria, joista toinen laskee kokonaismyynnin ja toinen kumulatiivisen myynnin valitulta aikajaksolta. Molemmat mittarit on sijoitettu taulukkovisualisointiin:
Esimerkkitilanteessa tietomallissa on myös kalenteritaulu (Date), johon kaavassa viitataan. Mittari muuttaa kontekstia eli suodattaa Date-taulusta kaikki aikajaksoa edeltävät päivät CALCULATE, FILTER ja ALLSELECTED-funktioiden avulla ja laskee niistä kokonaismyynnin.
Suurin osa tietomallin laskennasta on perustunut mittareihin. Tietomalliin luotuja mittareita on voinut käyttää missä tahansa visuissa uudelleen ja uudelleen. Kaavoja ei ole tarvinnut kirjoittaa erikseen kutakin visualisointia varten, vaan samojen mittareiden avulla on voinut näyttää tuloksia erilaisissa visuissa kuukausittain, vuosittain, tuoteryhmittäin, maittain, asiakkaittain, myyjittäin tai missä tahansa muussa kontekstissa.
Tavallisimpien perusmittareiden (SUM, COUNTROWS, AVERAGE) luonti on helppoa ja niitä luodaan varmasti tulevaisuudessa kuten tähänkin asti. Yksinkertainen peruslaskenta kannattaa toteuttaa edelleen perinteisinä mittareina, sillä mittareita voi hyödyntää helposti eri tilanteissa.
Visukohtaiset kaavat ja funktiot
Mittareiden kirjoittaminen voi joskus olla haastavaa, sillä erilaisten DAX-funktioiden lisäksi pitää ymmärtää DAX-kielen kontekstiajattelu ja osata kirjoittaa kaavoja, jotka muuttavat taustasuodatuksia (eli kontekstia), kuten kumulatiivisessa mittariesimerkissä on tehty.
Jotta tiettyjä kaavoja olisi helpompi kirjoittaa, Microsoft kehitti visukaavat. Uusien visukaavojen avulla voidaan laskea joitakin tuloksia helpommin, mutta nimensä mukaisesti ne pitää kirjoittaa kuhunkin visuun erikseen.
Visukohtaisia kaavoja varten on luotu joukko täysin uusia funktioita, kuten RUNNINGSUM, MOVINGAVERAGE, PREVIOUS, NEXT, jne. Löydät ajan tasalla olevan luettelon täältä.
Seuraavassa esimerkissä laaditaan vastaava kumulatiivinen tulos visukaavana uuden RUNNINGSUM-funktion avulla.
Kaavan laatiminen
Esimerkissä laaditaan kumulatiivinen myyntisumma, joka laskee tuloksen valitulta aikajaksolta.
Sijoita ensin visuun kaikki ne tiedot, joita tarvitaan laskennassa, sillä kaavat voivat viitata vain visussa olevaan sisältöön. Jos haluat esimerkiksi laskea kumulatiivisen kokonaismyynnin, valitse mukaan kokonaismyynti. Kokonaismyynti voi olla joko tietomalliin luotu mittari tai tietomallin sarake, jonka perusteella summa lasketaan.
Kun olet laatinut visun rungon, valitse kolmen pisteen valikosta New visual calculation (Uusi visualisoinnin laskenta). Visun ei tarvitse olla taulukko tai matriisi, vaikka kuvassa on käytetty sellaista selkeyden vuoksi.
Näyttö jakautuu kahteen osaa. Yläosassa näytetään visu ja alaosassa sama sisältö taulukkomuodossa. Alaosa on kaavan muodostamista ja muokkaamista varten. Voit joko kirjoittaa suoraan kaavariville tai voit valita fx-painikkeen avulla jonkun valmiista kaavamalleista ja täydentää kaavamallin mukaista koodia kaavarivillä.
Voit käyttää visukaavoissa monia muitakin DAX-funktioita kuin uusia DAX-erityisfunktioita. Lisäksi kaavoissa voi käyttää normaaliin tapaan erilaisia laskutoimitusoperaattoreita sekä visun sisältönä olevia kenttiä ja/tai mittareita.
Kuvan esimerkissä on valittu Running sum -kaavamalli ja muodostuneen RUNNINGSUM-funktion parametriksi on täydennetty [Kokonaismyynti].
Kun kaava on valmis, hyväksy se Enterillä, jolloin tulos ilmestyy sekä alaosassa olevaan taulukkonäkymään että yläosassa olevaan visualisointiin.
Kuten huomaat, kumulatiivinien kaava on huomattavasti lyhyempi ja helpompi muodostaa kuin vastaava mittari. Kaava on myös suorituskyvyltään tehokkaampi, sillä se laskee tuloksen visuun summatuista luvuista, ei taustalla olevasta datasta kuten mittarit tekevät.
Suosittelen katsomaan myös tämän artikkelin loppuun linkitetyn Jeffrey Wangin lyhyen haastattelun, jossa esitellään eräs toinen erittäin hyödyllinen visukaavojen käyttötapaus.
Kenttien piilotus
Jos et halua näyttää kaikkia laskennassa tarvittavia kenttiä, voit piilottaa niitä oikealta visualisointipaneelista (Hide from visual). Piilotus on mahdollista, kun olet kahteen osaan jakautuneessa visukohtaisten kaavojen muokkaustilassa.
Kaavan muokkaus
Jos kaava ei näy kaavarivillä tai olet siirtynyt pois muokkaustilasta, pääset muokkaamaan oikealta visualisointipaneelista (Edit visual calculation). Mikäli alla olevan kuvan mukainen muokkauspainike ei ole näkyvillä, napsauta visukohtaista kaavakenttää hiiren kakkosella ja valitse pikavalikosta vastaava komento.
Kaavojen muotoilu
Samalla kun Microsoft aktivoi viime syksynä käyttöön visukohtaiset kaavat, Power BI Desktopin käyttöliittymään ilmestyi myös uusi toiminto, jonka kautta näiden uusien kaavojen tuloksia muotoillaan.
Jos olet ottanut käyttöön uuden Power BI Desktop käyttöliittymän, muotoiluvaihtoehdot läytyvät muotoilupaneelista Properties (Ominaisuudet) -välilehdeltä. Jos käytät vielä vanhaa käyttöliittymää, muotoilut ovat muotoilupaneelin General (Yleiset) -välilehdellä
Kun kaava tai kaavat ovat valmiit, voit poistua takaisin tavalliseen raportointinkymään oikeassa yläkulmassa olevalla Back to report (Palaa raporttiin) painikkeella.
Siirtyminen raportointinäkymästä kaavan muokkaustilaan
Kun olet normaalinäkymässä ja haluat päästä muokkaamaan kaavoja, valitse ensin kyseinen visu ja napsauta harmaassa kentässä olevaa Edit (Muokkaa) -painiketta. Jos käytät Power BI Desktopin vanhaa käyttöliittymää, painiketta ei näy, vaan joudut napsauttamaan kaavakenttää hiiren kakkospainikkeella ja valitsemaan pikavalikosta Edit calculation (Muokkaa laskentaa).
Esimerkki: Ero edelliseen
Alla on myös esimerkikki Versus previous (Verrattuna edelliseen) mallin mukaisesta visukaavasta sekä vastaavasta tavallisesta DAX-mittarista.
Lisätietoja
Visukaavassa voi viitata vain siihen sisältöön, mitä visuun on valittu. Kaavojen laatimisen jälkeen voit piilottaa sellaiset kentät, joita et halua näyttää.
Microsoft on kehittänyt tähän mennessä hieman yli 10 visukaavoihin tarkoitettua erityisfunktiota, joista RUNNINGSUM on yksi. Muut visufunktiot on esitelty tässä Microsoftin artikkelissa. Visufunktioiden lisäksi kaavoissa voi käyttää erilaisia DAX-perusfunktioita, kuten vaikkapa IF, SWITCH, ROUND, jne.
Visukaavat ovat vielä Preview eli esiversiovaiheessa, vaikka Microsoft onkin jo oletusarvoisesti aktivoinut ne Power BI Desktopiin. Tästä johtuen niihin liittyy vielä rajoituksia ja niitä kehitetään edelleen. Ne eivät esimerkiksi vielä toimi kaikissa visulajeissa. Löydät lisätietoja rajoituksista täältä.
Jos kaavassa pitää laskea visun ulkopuolisilla tiedolla kuten aloittaa kumulatiivisuus valitun aikajakson sijaan aikojen alusta, tarvitaan perinteinen DAX-mittari, sillä visukaava laskee vain visun sisällöstä eli visussa olevalta aikajaksolta. Alla on esimerkki kumulatiivisesta mittarista, joka laskee tuloksen aikojen alusta lähtien. Huomaa, että kaavassa on ALLSELECTED-funktion sijaan ALL-funktio.
Visukaavojen hyödyt ja puutteet sekä hieman pohdintaa
Kokosin listan visukaavojen höydyistä ja puutteista sekä lisäsin muutamia omia ajatuksiani. Jotta pystyt itse arvioimaan ominaisuutta kattavammin omasta näkökulmastasi, suosittelen käymään läpi Microsoftin liittyvän lyhyen itseopiskeluaineiston sekä lukemaan myös tätä artikkelia laajemman Microsoftin artikkelin.
Hyödyt
- Yksinkertaisuus ja helppokäyttöisyys
Ovat helpompia ja suoraviivaisempia tietyissä laskentatilanteissa, kuten kumulatiivisuus, liukuvat tulokset tai vertailut (vertailu edelliseen tai seuraavaan tai vertailu ensimmäiseen tai viimeiseen). Tiettyihin kaavoihin on olemassa kaavamalli (fx-painike), joiden avulla kaavan saa helposti rakennettua. - Suorituskyky
Visukaava on suorituskyvyltään tehokkaampi kuin vastaava mittari, sillä visukaavoissa laskeminen kohdistuu vain visussa näkyviin jo yhteenvedettyihin lukuihin, ei taustalla olevaan rivitason dataan. - Joustavuus
Kaavoissa voidaan viitata visun rakenteeseen (mitä on ensimmäisenä, mitä on edellisellä rivillä), mikä tekee kaavojen laatimisesta ja ymmärtämisestä helpompaa. - Tuttuus esimerkiksi Excel-käyttäjille
DAX-kielen kontekstiajattelu on monille aloitteleville Power BI -käyttäjille hankala ymmärtää. Visukaavoissa ei tarvitse pohtia asioita kontekstin näkökulmasta, vaan kaavoissa voidaan viitata visun kenttiin eikä taustalla olevaan dataan. Visukaavat ovat erityisesti Excel-käyttäjille helpompia omaksua.
Puutteet
- Rajoitettu käyttö
Visukaavoissa ei voi käyttää funktioita, jotka viittaavat tietomalliin tai relaatioihin, kuten USERELATIONSHIP, CROSSFILTER, RELATED. Visukaava ei myöskään pysty laskemaan yhtä monipuolisesti tuloksia kuin mittarit (vrt. aiemmin mainittu kumulatiivisuus aikojen alusta). - Merkittävä rajoitus laskennassa
Visukaavassa ei pysty suodattamaan tietoja. Et pysty esimerkiksi muodostamaan kaavaa, joka laskisi myynnit vain tietyn tuoteryhmän, maan tai vuoden osalta. Tavallisissa mittareissa käytetään paljon CALCULATE-funktiota yhdistettynä erilaisiin suodatuksiin. Vastaavaa ei ole (ainakaan vielä) tarjolla visukaavoissa. Toki pystyt käyttämään visukaavassa sellaista mittaria, joka suodattaa dataa. - Eivät tallennu malliin
Visukaavat eivät tallennu tietomalliin eli niitä ei voi uusiokäyttää muissa visuissa. Kaavat toimivat vain niissä visussa, joihin ne on laadittu. Niitä ei myöskään nyt esiversiovaiheessa voi kopioida visusta toiseen. Tosin visualisoinnista saa tehtyä kopion, jos haluaa hyödyntää laskentalogiikkaa toisessa visualisoinnissa. - Esikatseluvaihe
Koska ominaisuus on vielä esikatseluvaiheessa, kaavat eivät toimi vielä kaikissa visualisointilejeissa. Niihin sisältyy muitakin rajoituksia. Visukaavat eivät esimerkiksi toimi raporteissa, joita julkaistaan julkisesti nettiin.
Pohdintaa
Ammattimainen Power BI raporttikehitys
Jos Power BI -raportteja ja tietomalleja kehitetään ammattimaisesti, perinteisiä mittareita ei välttämättä pysty kuin poikkaustapauksessa korvaamaan visukaavoilla. Tietomalleissa tarvitaan yleensä sellaista mittareihin perustuvaa laskentalogiikkaa, jota voi uudelleenkäyttää eri visualisoinneissa. Usein logiikka myös on mutkikkaampaa ja sisältää erilaisia suodatuksia, joihin visukaavat eivät kykene. Taitavat DAX-koodarit jatkavat varmasti mittareiden kirjoittamista, sillä niiden uudelleenkäytettävyys on tärkeä ominaisuus.
Erityisesti kiinnostaisi tietää onko visukaavoihin ylipäätän tulossa suodatusmahdollisuutta, sillä Microsoft mainitsee omissa dokumenteissaan, etteivät visuissa olevat kaavat käsittele rividataa, vaan laskevat tuloksia vain summatuista tiedoista. Jos rivitason käsittelyä ei tueta, sehän tarkoittaisi etteivät suodatuksetkaan olisi mahdollisia? Suodatuksen puute rajoittaa kaavojen käytettävyyttä merkittävästi tai tarkoitaa, että kaavoja tehdään osittain normaaleina suodattavina mittareina, joita vain hyödynnetään visukaavassa.
Rajoituksista huolimatta ammattimaiselle Power BI -kehittäjälle uusista kaavoista saattaa olla hyötyä ratkaisun kehitysvaiheessa, kun pitää vaikkapa saada aikaan nopea demo tai proof-of-concept.
Power BI -raportointi omien töiden ohessa
Omien töiden ohessa raportteja laativille sekä aloittelevammille käyttäjille uusista kaavoista saattaa olla merkittävästi apua, joskin visukohtaisten kaavojen tämänhetkinen käyttöliittymä ei ole kovin intuitiivinen. Se, että kaavarivi ei aktivoidu, kun muokkaustilassa valitsee taulukosta sarakkeen tai että muotoiluita pitää tehdä muotoilupaneelin Properties-välilehdeltä, eivät ole kovin käyttäjäystävällisiä vaihtoehtoja. Toisaalta on hyvä muistaa, että kyseessä on vasta esiversio-ominaisuus, joka tulee toivottavasti kehittymään käyttäjäystävällisemmäksi.
Satunnaisemmille käyttäjille voi olla myös haastavaa tunnistaa mihin päättyvät visukohtaisten kaavojen kyvyt ja missä vaiheessa pitää kirjoittaa perinteinen mittari. Haasteena saattaa myös olla erilaisten laskennallisten vaihtoehtojen paljous ja ymmärrys siitä, mitä voi ja kannattaa käyttää missäkin tilanteessa. Mikäli visukaavoihin itseensä ei kehitetä suodatusmahdollisuuksia, käyttäjän pitää ensin tehdä suodattava mittari (esim. Myynti Suomeen), jota hän voi käyttää visukaavan sisällä laskeakseen sen perusteella kumulatiivisen tuloksen. Se tarkoittaa, että käyttäjien pitää tuntea molemmat kaavatekniikat, mikä voi olla ”otona” raportteja laativalle käyttäjälle haaste.
Power BI:n kouluttaminen
Kouluttajan näkökulmasta pohdittavaa todellakin riittää! Asiakkaat haluavat entistä lyhyempiä ja ytimekkäämpiä ”yhdessä päivässä Power BI” -tyyppisiä koulutuksia, mutta Power BI -lumipallo senkun jatkaa pyörimistään ja nykyisin on jo liiaksikin erilaisia vaihtoehtoja pelkästään laskentamahdollisuuksien läpikäyntiin:
- lasketut sarakkeet, mittarit ja taulut
- sarakkeiden käyttäminen visualisoinneissa ja valikosta löytyvät helppokäyttöiset yhteenvetomahdollisuudet (implisiittiset mittarit)
- mittareiden luonti pikamittaritoiminnolla (quick measures) tai itse kirjoittamalla (eksplisiittiset mittarit)
- visukaavojen hyödyntäminen
Puhumattakaan muista DAX-kieleen liittyvistä aiheista, kuten
- DAX-kyselyt ja DAX-kyselynäkymä
(lisätietoja henkilökohtaisesta blogiartikkelistani: Power BI Desktop – uusi DAX-kyselynäkymä | HExcelligent.fi ) - Copilotia käyttäminen DAX-näkymässä apurina
(lisätietoja Corellian blogiartikkelistani: Power BI Copilot: lisenssit, asetukset ja ominaisuuksia – Corellia) - mittariryhmät sekä niiden hyödyntäminen
Yhteenveto ja tulevaisuuden näkymät
Power BI:n visukaavat tarjoavat mielenkiintoisia mahdollisuuksia sekä omien töittensä ohessa raportoiville että kokeneemmille kehittäjille. Vaikka ne eivät tulekaan täysin korvaamaan perinteisiä mittareita, ne voivat nopeuttaa kehitysprosessia ja tarjota uusia helpompia tapoja toteuttaa laskentaa. Käyttöliittymän kehittyessä ja ominaisuuksien monipuolistuessa visukaavat nousevat ehkä tulevaisuudessa entistä tärkeämpään rooliin Power BI -työkaluvalikoimassa.
Mitä oleellisempi työkalu Power BI on, sitä tärkeämpää on myös seurata ominaisuuksien kehitystä ja oppia hyödyntämään niitä sopivissa tilanteissa. Erityisesti kouluttajien ja kehittäjien on hyvä pysyä ajan tasalla uusista päivityksistä ja ominaisuuksista, jotta he voivat tarjota parasta mahdollista tukea ja koulutusta käyttäjilleen. Tulevaisuus näyttää edelleenkin lupaavalta, ja Power BI:n jatkuva kehitys tuo mukanaan uusia mahdollisuuksia ja haasteita, joihin on mielenkiintoista tarttua.
Lämpimästi suosittelen katsomaan tammikuussa 29.1.2025 julkaistun lyhyen haastattelun, jossa Jeffrey Wang (yksi DAX-kolmesta kehittäjästä) kertoo visukohtaisista laskutoimituksista:
STOP Using Measures in Power BI Until You See This
(Oma huomioni: Mielenkiintoista, ettei Jeffrey Wang maininnut lainkaan, että laskennassa tarvittavia kenttiä voi piilottaa?)