Tietotyypit Power BI Desktopissa

Tässä artikkelissa kuvataan tietotyypit, joita Power BI Desktop ja Data Analysis Expressions (DAX) tukevat.

Kun lataat tietoja Power BI Desktopiin, se yrittää muuntaa lähdesarakkeen tietotyypin tietotyypiksi, joka tukee paremmin tehokasta tallentamista, laskutoimituksia ja tietojen visualisointia. Jos esimerkiksi Excelistä tuomassasi arvosarakkeessa ei ole murtolukuarvoja, Power BI Desktop muuntaa koko tietosarakkeen kokonaisluku-tietotyypiksi, joka soveltuu paremmin kokonaislukujen tallentamiseen.

Tämä konsepti on tärkeä, koska joillain DAX-funktioilla on erityisiä tietotyyppivaatimuksia. Monissa tapauksissa DAX muuntaa implisiittisesti tietotyypin puolestasi, mutta on myös joitain tapauksia, joissa se ei tee niin. Jos esimerkiksi DAX-funktio edellyttää päivämäärä-tietotyyppiä ja sarakkeen tietotyyppi on teksti, DAX-funktio ei toimi oikein. Tästä syystä oikean tietotyypin saaminen sarakkeelle on tärkeää ja hyödyllistä. Implisiittiset muunnokset kuvataan myöhemmin tässä artikkelissa.

Sarakkeen tietotyyppien selvittäminen ja määrittäminen

Power BI Desktop voit määrittää sarakkeen tietotyypin Power Query -editori tai tieto- tai raporttinäkymässä:

tietotyypit Power Query -editori

Screenshot of the Data type ribbon, showing it in the Query Editor.

Tietotyypit tieto- tai raporttinäkymässä

Screenshot of the Data type ribbon, showing it in the Data View.

Power Query -editori avattavassa tietotyyppivalikossa on kaksi tietotyyppiä, joita ei tällä hetkellä ole tieto- tai raporttinäkymässä: päivämäärä/aika/aikavyöhyke ja kesto. Kun näitä tietotyyppejä sisältävä sarake ladataan malliin ja sitä tarkastellaan tieto- tai raporttinäkymässä, sarakkeen päivämäärä/aika/aikavyöhyke-tietotyyppi muunnetaan päivämääräksi/ajaksi ja kesto-tietotyypin sisältävä sarake muunnetaan desimaaliluvuksi.

Binaarista tietotyyppiä ei tällä hetkellä tueta Power Query -editori ulkopuolella. Power Query -editori sisällä voit käyttää sitä binaaritiedostojen lataamisessa, jos muunnat sen muihin tietotyyppeihin ennen sen lataamista Power BI malliin. Se on Tietonäkymä- ja Raporttinäkymä-valikoissa yhteensopivuussyistä, mutta jos yrität ladata binaarisarakkeita Power BI -malliin, saattaa ilmetä virheitä.

Lukutyypit

Power BI Desktop tukee kolmea lukutyyppiä:

Desimaaliluku – edustaa 64-bittistä (kahdeksantavuista) liukulukua. Tämä on yleisin lukutyyppi ja vastaa lukuja sellaisena, kuin yleensä ajattelet niitä. Vaikka se on suunniteltu käsittelemään murtolukuja sisältäviä arvoja, se käsittelee myös kokonaislukuja. Desimaalilukutyyppi pystyy käsittelemään negatiivisia arvoja väliltä –1,79E +308 ja –2,23E –308, 0, ja positiivisia arvoja väliltä 2,23E –308 ja 1,79E + 308. Esimerkiksi luvut 34; 34,01 ja 34,000367063 ovat kelvollisia desimaalilukuja. Suurin tarkkuus, joka voidaan esittää desimaalilukutyyppinä, on pituudeltaan 15 numeroa. Desimaalierotin voi olla missä tahansa kohtaa lukua. Desimaalilukutyyppi vastaa sitä, miten Excel tallentaa sen luvut. Desimaaliluvun tietotyyppi on määritetty Taulukkomuotoinen objektimalli (TOM) -mallissa muodossa DataType.Double Enum tyyppi 1.

Kiinteällä desimaaliluvulla – on kiinteä sijainti desimaalierottimelle. Desimaalierottimen oikealla puolella on aina neljä numeroa, ja luvussa voi olla 19 merkitsevää numeroa. Suurin arvo, jota se voi edustaa, on 922 337 203 685 477,5807 (positiivinen tai negatiivinen). Kiinteä desimaalilukutyyppi on hyödyllinen tilanteissa, joissa pyöristäminen saattaa aiheuttaa virheitä. Kun käsittelet useita lukuja, jotka sisältävät pieniä murtolukuarvoja, ne voivat joskus kumuloitua ja tehdä luvusta lievästi epätäsmällisen. Koska desimaalierottimen oikealla puolella olevat arvot katkaistaan neljännen numeron jälkeen, kiinteän desimaalilukutyypin avulla voit välttää tällaiset virheet. Jos SQL Server ovat sinulle tuttuja, tämä tietotyyppi vastaa SQL Server desimaalilukua (19,4) tai Valuutta-tietotyyppiä Analysis Servicesissä ja Power Pivotissa Excel. Kiinteän desimaaliluvun tietotyyppi ON MÄÄRITETTY TOM:ssä tietotyypiksi DataType.Decimal Enum 1.

Kokonaisluku – edustaa 64-bittistä (kahdeksantavuista) kokonaislukuarvoa. Koska kyseessä on kokonaisluku, sillä ei ole numeroita desimaalierottimen oikealla puolella. Siinä voi olla 19 numeroa, ja ne voivat olla positiivisia tai negatiivisia kokonaislukuja väliltä –9 223 372 036 854 775 807 (–2^63+1) ja 9 223 372 036 854 775 806 (2^63–2). Se voi edustaa eri numeeristen tietotyyppien suurinta mahdollista tarkkuutta. Kuten kiinteän desimaalilukutyypin kohdalla, myös kokonaislukutyypistä voi olla hyötyä tilanteissa, joissa sinun tulee kontrolloida pyöristystä. Kokonaisluku-tietotyypiksi on TOM:ssä määritetty DataType.Int64-luettelointityyppi 1.

Huomautus

Power BI Desktop -tietomalli tukee 64-bittisi kokonaislukuarvoja, mutta suurin numero, jonka visualisoinnit voit turvallisesti ilmaista, on JavaScript rajoitusten vuoksi 9,007,199,254,740,991 (2 ^ 53 - 1). Jos käsittelet tietomallissasi tätä suurempia numeroita, voit pienentää kokoa laskutoimituksilla ennen niiden lisäämistä visualisointiin.

1 - DataType Luetteloinnit on määritetty taulukkomuotoisessa Sarake-ominaisuudessaDataType. Lisätietoja objektien ohjelmaisesta muokkaamisesta Power BI on artikkelissa Tietojoukkojen ohjelmointi Power BI taulukkomuotoisella objektimallilla.

Lukutyyppilaskelmien tarkkuuden varmistaminen

Desimaaliluku-tietotyypin sarakkeen arvot tallennetaan likimääräisinä tietotyypeinä IEEE 754 Standardin mukaisesti liukulukuja varten. Likimääräisten tietotyyppien tarkkuudessa on luontaisia rajoituksia, koska luvun tarkan arvon tallentamisen sijaan ne voidaan tallentaa erittäin lähellä tai pyöristettynä sen lähentämisenä. Tämä tarkoittaa sitä, että tarkkuushäviöitä tai epätarkkuuksia voi ilmetä, jos liukulukujen määrää ei voida luotettavasti määrittää liukulukuarvossa. Epätäsmällisyyden mahdollisuus voi joissakin raportointiskenaarioissa näyttää odottamattomalta tai virheelliseltä laskutoimitukselta.

Laskutoimitukset, jotka suorittavat yhtäsuuruusvertailuja (=, <>, = >ja <=) desimaaliluku-tietotyypin arvojen välillä, voivat palauttaa odottamattomia tuloksia. Tämä on ilmeisintä, kun käytetään RANKX-funktiota DAX-lausekkeessa , jossa tulos lasketaan kahdesti, jolloin luvut eroavat hieman toisistaan. Raportin käyttäjä ei huomaa näiden kahden luvun eroa, mutta sijoitustulos voi olla selvästi virheellinen. Odottamattomien tulosten välttämiseksi voit muuttaa sarakkeen tietotyypin desimaaliluvusta joko kiinteäksi desimaaliluvuksi tai kokonaisluvuksi tai pakottaa pyöristyksen käyttämällä ROUND-funktiota. Kiinteän desimaaliluvun tietotyypillä on suurempi tarkkuus, koska desimaalierottimen oikealla puolella on aina neljä numeroa.

Vaikka ne ovat harvinaisia, laskutoimitukset, jotka laskevat yhteen Desimaaliluku-tietotyypin sarakkeen arvot, voivat mahdollisesti palauttaa odottamattomia tuloksia. Tämä on todennäköisintä sarakkeissa, joissa on sekä suuri määrä positiivisia lukuja että suuri määrä negatiivisia lukuja. Summan tulokseen vaikuttaa arvojen jakautuminen sarakkeen riveille. Jos kyselyn tuloksen palauttamiseen tarvittava laskutoimitus laskee suurimman osan positiivisista luvuista yhteen ennen negatiivisten lukujen laskemista yhteen, osittainen summa alussa voi mahdollisesti menettää tarkkuutta, koska sen voi vinottaa suurella positiivisella osittaisella summalla. Toisaalta, jos kysely sattuu lisäämään tasapainotettuja positiivisia ja negatiivisia lukuja, summa säilyttää enemmän tarkkuutta ja näin ollen palautetaan tarkempia tuloksia. Odottamattomien tulosten välttämiseksi voit muuttaa sarakkeen tietotyypin desimaaliluvustakiinteäksi desimaaliluvuksi tai kokonaisluvuksi.

Päivämäärä/aika-tyypit

Power BI Desktop tukee viittä päivämäärä/aika-tietotyyppiä kyselynäkymässä. Sekä päivämäärä/aika/aikavyöhyke että kesto muunnetaan malliin lataamisen yhteydessä. Power BI Desktop -tietomalli tukee vain päivämäärää/aikaa, mutta se voidaan muotoilla päivämäärinä tai kellonaikoina itsenäisesti.

Päivämäärä/kellonaika – edustaa sekä päivämäärän että kellonajan arvoa. Kansien alapuolella päivämäärän/ajan arvo tallennetaan desimaalilukutyyppinä. Näin voit todellisuudessa muuntaa näiden kahden välillä. Päivämäärän aikaosa tallennetaan murtolukuna 1/300 sekunnin (3,33 ms) kokonaislukukerrannaisiin. Päivämääriä vuosien 1 900–9 999 välillä tuetaan.

Päivämäärä – edustaa vain päivämäärää (ei aikaosaa). Malliin muunnettaessa päivämäärä on sama kuin päivämäärän/ajan arvo, jonka murtolukuarvo on nolla.

Aika – edustaa vain aikaa (ei päivämääräosaa). Malliin muunnettaessa ajan arvo on sama kuin päivämäärän/ajan arvo, jossa desimaalierottimen vasemmalla puolella ei ole numeroita.

Päivämäärä/aika/aikavyöhyke – osoittaa UTC-päivämäärää/-aikaa ja aikavyöhykkeen siirtymää. Se muunnetaan malliin lataamisen yhteydessä päivämääräksi/ajaksi. Power BI -malli ei säädä aikavyöhykettä käyttäjän sijainnin tai maa-asetuksen perusteella. Jos arvo 09:00 on ladattu malliin Yhdysvalloissa, se näytetään muodossa 09:00, kun raportti avataan tai sitä tarkastellaan.

Kesto – edustaa ajan pituutta. Se muunnetaan malliin lataamisen yhteydessä desimaalilukutyypiksi. Desimaaliluvun tyyppinä se voidaan lisätä päivämäärä/aika-kenttään tai vähentää siitä oikeilla tuloksilla. Kuten desimaalilukutyyppiä, voit helposti käyttää sitä visualisoinneissa, jotka näyttävät suuruusluokan.

Tekstityyppi

Teksti – Unicode-merkkitietoja sisältävä merkkijono. Voi olla merkkijono, numero tai päivämäärä, joka on esitetty tekstimuodossa. Merkkijonon enimmäispituus on 268 435 456 Unicode-merkkiä (256 megamerkkiä) tai 536 870 912 tavua.

Power BI tallentaa tiedot tavoilla, jotka voivat joissakin tilanteissa aiheuttaa sen, että tiedot näytetään eri tavalla. Tässä osiossa kuvataan yleisiä tilanteita, joissa Teksti-tietojen käsitteleminen saattaa hieman muuttua tietojen Power Query kyselyn ja sen jälkeen, kun tiedot on ladattu.

Kirjainkoon (in-)luottamuksellisuus

Moduulissa, joka tallentaa ja lähettää tietoja Power BI, kirjainkoolla ei ole merkitystä – mikä tarkoittaa, että moduuli käsittelee eri kirjainkokoa samalla arvolla: a on yhtä suuri kuin A. Power Query kirjainkoko on kuitenkin merkitsevä: aei ole yhtä suuri kuin A. Jos luottamuksellisuusero aiheuttaa tilanteita, joissa tekstitiedot ladataan Power BI ja muuttaa myöhemmin isoa kirjainkokoa, nähtävästi selittämättömästi. Seuraavassa yksinkertaisessa esimerkissä ladattiin tietoja tilauksista: OrderNo-sarake , joka on yksilöllinen jokaiselle tilaukselle, ja Addressee-sarake , joka sisältää vastaanottajan nimen, joka syötetään manuaalisesti tilaushetkellä. Power Query nämä tiedot näytetään seuraavasti:

Textual data with various capitalizations in Power Query

Huomaa, että on olemassa useita tilauksia, joilla on sama nimi kuin vastaanottajalla, mutta ne on syötetty järjestelmään hieman eri tavalla.

Kun siirrymme Power BI Tiedot-välilehteen tietojen lataamisen jälkeen, sama taulukko näyttää seuraavalta.

The same textual data after loading into Power BI has changed capitalization

Huomaa, että joidenkin nimien kirjainkoko on muuttunut alkuperäisestä tavasta. Tämä muutos johtuu siitä, että moduulissa, joka tallentaa Power BI tiedot, kirjainkoko ei ole merkitsevä, ja se käsittelee saman merkin pieniä ja isoja kirjaimia kuin samaa versiota. Power Query kirjainkoko on merkitsevä, joten tämä ero tekee tästä erottelusta ja näyttää tiedot täsmälleen samalla tavalla kuin ne on tallennettu lähdejärjestelmään. Toisen näyttökuvan tiedot on kuitenkin ladattu Power BI moduuliin, joten ne ovat muuttuneet.

Kun tietoja ladataan, moduuli arvioi jokaisen rivin yksi kerrallaan ylhäältä alkaen. Moduuli tallentaa kullekin tekstisarakkeelle (kuten Addressee) yksilöllisten arvojen hakemiston suorituskyvyn saavuttamiseksi tietojen pakkaamisen avulla. Kun käsittelet Addressee-saraketta , moduulin kolme ensimmäistä arvoa ovat yksilöllisiä ja tallennetaan sanastoon. Kuitenkin neljännestä nimestä (tilaus 1004) alkaen, koska moduulin kirjainkoolla ei ole merkitystä, nimet näkyvät samalla tavalla: Taina Hasu on sama kuin TAINA HASU sekä Taina HASU. Näin ollen moduuli ei tallenna kyseistä nimeä, vaan viittaa sen sijaan etunimeen, johon se törmäsi. Se selittää myös, miksi nimi MURALI DAS kirjoitetaan pääkaupungeissa, koska se on yksinkertaisesti tapa, jolla nimi kirjoitettiin, kun moduuli ensimmäisen kerran arvioi sen, kun tiedot ladattiin ylhäältä alas.

Tässä kuvassa selitetään tämä prosessi: Depiction of the data load process and mapping text values to a dictionary of unique values

Yllä olevassa esimerkissä moduuli lataa ensimmäisen tietorivin, luo Addressee-sanaston ja lisää Siihen Taina Hasun . Se myös lisää viittauksen tähän arvoon sen lataamisen taulukon Addressee-sarakkeessa . Se tekee tämän myös toiselle ja kolmannelle riville, koska molemmat näistä nimistä eivät vastaa muita, kun niitä verrataan kirjainkoon ohittamiseen.

Neljännen rivin Addressee-kohdetta verrataan sanaston nimiin, ja se löytyy: koska moduulin kirjainkoko ei ole merkitsevä, TAINA HASU ja Taina Hasu ovat samat. Näin ollen moduuli ei lisää uutta nimeä Osoitteiden sanastoon, vaan viittaa olemassa olevaan nimeen. Tämä on sama jäljellä riveillä.

Huomautus

Koska moduuli, joka tallentaa ja tekee kyselyjä Power BI kirjainkoko on merkitsevä, on erityistä huolta, kun työskentelet DirectQuery-tilassa kirjainkoko on merkitsevä. Power BI olettaa, että lähde on poistanut rivien kaksoiskappaleet. Koska Power BI kirjainkoolla ei ole merkitystä, kahta arvoa, jotka eroavat tapauksen mukaan, käsitellään vain kaksoiskappaleina, kun taas lähdettä ei ehkä käsitellä sellaisena. Tällöin lopullista tulosta ei ole määritetty, ja sitä tulisi välttää. Jos käytät DirectQuery-tilaa ja tietolähteessä kirjainkoko on merkitsevä, johdannaiset on normalisoitava lähdekyselyssä tai Power Query.

Lopussa olevat välilyönnit

Käsitellessäsi tietoja, jotka sisältävät alussa tai lopussa olevia välilyöntejä, käytä Text.Trim-funktiota poistaaksesi välilyönnit tekstin alusta tai lopusta, sillä Power BI moduuli rajaa automaattisesti kaikki lopussa olevat välilyönnit, mutta ei alussa olevia välilyöntejä. Ilman alussa tai lopussa olevan välilyönnin poistamista suhteen luominen voi epäonnistua, koska arvojen kaksoiskappaleet havaitaan tai visualisoinnit saattavat palauttaa odottamattomia tuloksia. Olemme ladanneet yksinkertaisia tietoja asiakkaista: Nimi-sarakkeen , joka sisältää asiakkaan nimen, ja Indeksi-sarakkeen , joka on yksilöllinen jokaiselle merkinnälle. Huomaa, että asiakkaan nimi toistetaan neljä kertaa, mutta joka kerta, kun alussa ja lopussa on eri välilyöntejä:

Rivi Edeltävä tila Välilyönti lopussa Nimi (lainausmerkkeiden sisällä selkeyden vuoksi) Indeksi Tekstin pituus
1 No No "Dylan Williams" 1 14
2 No Yes "Dylan Williams " 10 15
3 Yes No " Dylan Williams" 20 15
4 Yes Yes " Dylan Williams " 40 16

Näitä muunnelmia voi ilmetä manuaalisen tietojen lisäämisen yhteydessä ajan kuluessa. Power Query tuloksena saatavat tiedot näytetään seuraavasti.

Screenshot of textual data with various leading and trailing spaces in Power Query

Kun siirrymme Power BI Tiedot-välilehteen tietojen lataamisen jälkeen, sama taulukko näyttää samalta kuin seuraavassa kuvassa.

Screenshot of the same textual data after loading into Power BI returns the same number of rows as before.

Näihin tietoihin perustuva visualisointi palauttaa kuitenkin vain kaksi riviä.

Screenshot of a table visual based on the same data returns just two lines of data - the first row has a total index of 60 and the second row has a total index of 11.

Kuten yllä olevassa kuvassa näkyy, ensimmäisellä rivillä on indeksi-kentän kokonaisarvo "60", mikä johtaa siihen johtopäätökseen, että visualisoinnin ensimmäinen rivi edustaa aiemmin ladattujen tietojen kahta viimeistä riviä, kun taas toinen rivi, jonka indeksiarvo on yhteensä 11, edustaa kahta ensimmäistä riviä. Visualisoinnin ja tietotaulukon rivien määrän ero johtuu siitä, että moduuli poistaa (poistamalla) automaattisesti kaikki lopussa olevat välilyönnit, mutta ei edeltäviä välilyöntejä. Ensimmäinen ja toinen rivi sekä kolmas ja neljäs rivi katsotaan samoiksi, joten visualisointi palauttaa nämä tulokset.

Näin voi käydä, kun käsittelet visualisointeja ja myös yhteyksien virheilmoituksia, koska arvojen kaksoiskappaleita havaitaan. Esimerkiksi suhteiden määrityksen mukaan saatat saada seuraavan kuvan kaltaisen virheen.

Screenshot of an error message showing: Column 'Name' in Table 'Customers' contains a duplicate value 'Dylan Williams' and this is not allowed for columns on the one side of a many-to-one relationship or for columns that are used as the primary key of a table.

Muissa tilanteissa et ehkä pysty luomaan monta yhteen- tai yksi yhteen -suhdetta, koska arvojen kaksoiskappaleita havaitaan.

Screenshot of the relationship dialog showing a 'the cardinality you selected isn't valid for this relationship' error, which is related to duplicate values being detected.

Nämä virheet jäljitetään takaisin alussa tai lopussa olevissa välilyönnteihin, ja ne voidaan ratkaista käyttämällä Text.Trim-funktiota , joka poistaa välilyönnit Tietojen muuntaminen -ikkunassa.

Tosi/epätosi-tyyppi

Tosi/epätosi – totuusarvo tosi tai epätosi.

Power BI muuntaa ja näyttää tiedot eri tavalla joissakin tilanteissa. Tässä osiossa kuvataan totuusarvojen yleisiä muuntamistapauksia ja sellaisten muunnosten korjaamista, jotka aiheuttavat odottamattomia tuloksia Power BI.

Saat parhaat ja yhdenmukaisimmat tulokset, kun lataat totuusarvotietoja (tosi/epätosi) sisältävän sarakkeen Power BI, määrittämällä saraketyypiksi Tosi/Epätosi seuraavassa esimerkissä kuvatulla ja selitetyllä tavalla.

Tässä esimerkissä latasimme tiedot siitä, ovatko asiakkaamme rekisteröityneet uutiskirjeeseen: arvo TRUE ilmaisee, että asiakas on rekisteröitynyt uutiskirjeeseen. Arvo FALSE ilmaisee, että asiakas ei ole rekisteröitynyt. Kun julkaisemme raportin Power BI -palvelu, huomaamme kuitenkin, että uutiskirjeen rekisteröitymisen tilaa seuraava sarake näkyy muodossa 0 ja -1 odotettujen TRUE- tai FALSE-arvojen sijaan. Seuraavissa vaihekokoelmissa, joihin liittyy tietojen kyseleminen, julkaiseminen ja päivittäminen, kuvataan, miten muunnokset tapahtuvat ja miten niihin voidaan puuttua.

Tämän taulukon yksinkertaistettu kysely, joka näkyy seuraavassa kuvassa.

Columns set to boolean

Tilaa uutiskirje -sarakkeen tietotyypiksi määritetään Mikä tahansa, ja kyseisen tietotyyppiasetuksen seurauksena tiedot ladataan tekstinä Power BI malliin:

Data loaded into Power B I appears as expected

Kun lisäämme yksinkertaisen visualisoinnin, joka näyttää yksityiskohtaiset tiedot asiakasta kohti, tiedot näkyvät visualisoinnissa odotetulla tavalla sekä Power BI Desktop että Power BI -palvelu julkaisemisen aikana.

Visual shows data appearing as expected

Kun päivitämme tietojoukon Power BI -palvelu Tilaa uutiskirje -sarakkeen visualisoinneissa näyttää arvot arvoina -1 ja 0 sen sijaan, että ne näkyisi muodossa TRUE tai FALSE:

Visual shows data appearing in an unexpected format after refresh

Jos julkaisemme raportin uudelleen Power BI Desktop kautta, Tilaaja-uutiskirjeen sarake näyttää uudelleen arvon TRUE tai FALSE odotetulla tavalla, mutta kun päivitys tapahtuu Power BI -palvelu, arvot muuttuvat uudelleen näyttämään arvot -1 ja 0.

Voit varmistaa, että näin ei tapahdu, määrittämällä totuusarvosarakkeet kirjoittamaan tosi/epätosi Power BI Desktop ja julkaisemalla raporttisi uudelleen.

Change the data type of the column to true false

Kun muutos tehdään, visualisointi näyttää Tilattu uutiskirje -sarakkeen arvot hieman eri tavalla. sen sijaan, että teksti olisi kaikki kirjaimet (kuten taulukkoon kirjoitettuna), ne kursivoituvat ja vain ensimmäinen kirjain kirjoitetaan isolla alkukirjaimella, joka on sarakkeen tietotyypin muuttamisen tulos.

Values appear differently when the data type is changed

Kun tietotyyppiä muutetaan ja julkaistaan uudelleen Power BI -palvelu ja kun päivitys tapahtuu, arvot näytetään odotetulla tavalla tosi- taiepätosi-muodossa.

When true or false values use the true false data type, data appears as expected after refresh

Kun käsittelet totuusarvotietoja Power BI, varmista siis, että sarakkeet on määritetty tosi/epätosi-tietotyyppiin Power BI Desktop.

Tyhjät/nolla-arvot-tyyppi

Tyhjä – DAX-kaavan tietotyyppi, joka vastaa SQL-kielen tyhjäarvoja ja korvaa ne. Voit luoda tyhjän käyttämällä TYHJÄ-funktiota ja testata tyhjät käyttämällä loogista funktiota ONTYHJÄ.

Binaarinen tietotyyppi

Binaaritietotyyppiä voidaan käyttää edustamaan muita binaarimuotoisia tietoja. Power Query -editori sisällä voit käyttää sitä binaaritiedostojen lataamisessa, jos muunnat sen muihin tietotyyppeihin ennen sen lataamista Power BI malliin. Binaarisarakkeita ei tueta Power BI -tietomallissa. Se on Tietonäkymä- ja Raporttinäkymä-valikoissa yhteensopivuussyistä, mutta jos yrität ladata binaarisarakkeita Power BI -malliin, saattaa ilmetä virheitä.

Huomautus

Jos binaarisarake on kyselyn vaiheiden tulosteessa, tietojen päivityksen yrittäminen yhdyskäytävän kautta saattaa aiheuttaa virheitä. On suositeltavaa, että poistat kaikki binaarisarakkeet kyselyiden viimeisenä vaiheena.

Taulukko-tietotyyppi

DAX käyttää taulukko-tietotyyppiä monissa funktioissa, kuten koostamisissa ja aikatietojen laskutoimituksissa. Jotkin funktiot edellyttävät viittausta taulukkoon. Muut funktiot palauttavat taulukon, jota voidaan käyttää syötteenä muihin funktioihin. Joissakin funktioissa, jotka edellyttävät taulukkoa syötteeksi, voit määrittää lausekkeen, joka antaa taulukkoon arvon. Osa funktioista edellyttää viittausta perustaulukkoon. Lisätietoja tiettyjen funktioiden vaatimuksista saat DAX Function Reference -artikkelista.

Implisiittisen ja eksplisiittisen tietotyypin muuntaminen DAX-kaavoissa

Jokaisella DAX-funktiolla on eritysvaatimuksia, jotka koskevat syötteinä ja tulosteina käytettäviä tietotyyppejä. Osa funktioista vaatii esimerkiksi kokonaislukuja tiettyihin argumentteihin ja päivämääriä toisiin. Osa funktioista taas edellyttää tekstiä tai taulukoita.

Jos argumentiksi määrittämäsi sarake ei ole yhteensopiva funktion vaatiman tietotyypin kanssa, DAX palauttaa monissa tapauksissa virheen. Aina kun mahdollista, DAX yrittää kuitenkin implisiittisesti muuntaa tiedot vaadituksi tietotyypiksi. Esimerkki:

  • Voit kirjoittaa päivämäärän merkkijonona, jolloin DAX jäsentää merkkijonon ja yrittää muuntaa sen Windowsin päivämäärän ja kellonajan esitysmuodon mukaiseksi.
  • Voit lisätä arvon TOSI + 1 ja saada tulokseksi arvon 2, koska DAX on implisiittisesti muuntanut arvon TOSI numeroksi 1 ja suorittanut yhteenlaskun 1 + 1.
  • Jos lisäät arvoja kahteen sarakkeeseen ja toinen arvo on esitetty tekstinä ("12") ja toinen numerona (12), DAX muuttaa merkkijonon implisiittisesti numeroksi ja suorittaa yhteenlaskun saadakseen numeerisen tuloksen. Seuraava lauseke palauttaa arvon 44: = "22" + 22.
  • Jos yrität yhdistää kaksi lukua, Excel esittää ne merkkijonoina ja sitten yhdistää ne. Seuraava lauseke palauttaa arvon "1234": = 12 & 34.

Implisiittisten tietotyyppimuunnosten taulukko

Suoritettavan muunnoksen tyyppi määräytyy operaattorin mukaan. Operaattori muuntaa tarvitsemansa arvot ennen vaaditun toiminnon suorittamista. Seuraavissa taulukoissa on luettelo operaattoreista. Taulukoissa ilmaistaan myös muunto, joka suoritetaan kullekin sarakkeen tietotyypille, kun se yhdistetään risteävän rivin tietotyyppiin.

Huomautus

Tekstitietotyypit eivät sisälly seuraaviin taulukoihin. Kun numero esitetään tekstimuodossa, Power BI yrittää joissakin tapauksissa määrittää numeron tietotyypin ja esittää sen numerona.

Yhteenlasku (+)

Operaattori (+) KOKONAISLUKU CURRENCY REAALI Päivämäärä/kellonaika
KOKONAISLUKU KOKONAISLUKU CURRENCY REAALI Päivämäärä/kellonaika
CURRENCY CURRENCY VALUUTTA REAALI Päivämäärä/kellonaika
REAALI REAALI REAALI REAALI Päivämäärä/kellonaika
Päivämäärä/kellonaika Päivämäärä/kellonaika Päivämäärä/kellonaika Päivämäärä/kellonaika Päivämäärä/kellonaika

Jos esimerkiksi reaalilukua käytetään yhteenlaskussa yhdessä valuuttatietojen kanssa, molemmat arvot muunnetaan REAALI-tietotyypiksi. Palautusarvo on myös REAALI.

Vähennyslasku (–)

Seuraavassa taulukossa riviotsikko on vähennettävä (vasen puoli) ja sarakeotsikko on vähentäjä (oikea puoli).

Operaattori (–) KOKONAISLUKU CURRENCY REAALI Päivämäärä/kellonaika
KOKONAISLUKU KOKONAISLUKU CURRENCY REAALI REAALI
CURRENCY CURRENCY VALUUTTA REAALI REAALI
REAALI REAALI REAALI REAALI REAALI
Päivämäärä/kellonaika Päivämäärä/kellonaika Päivämäärä/kellonaika Päivämäärä/kellonaika Päivämäärä/kellonaika

Jos esimerkiksi päivämäärää käytetään vähennyslaskussa yhdessä minkä tahansa muun tietotyypin kanssa, molemmat arvot muunnetaan päivämääriksi. Palautusarvo on myös päivämäärä.

Huomautus

Tietomallit tukevat myös yksiparametrista operaattoria, – (negatiivinen). Tämä operaattori ei kuitenkaan muuta operandin tietotyyppiä.

Kertolasku (*)

Operaattori (*) KOKONAISLUKU CURRENCY REAALI Päivämäärä/kellonaika
KOKONAISLUKU KOKONAISLUKU CURRENCY REAALI KOKONAISLUKU
CURRENCY VALUUTTA REAALI CURRENCY VALUUTTA
REAALI REAALI CURRENCY REAALI REAALI

Jos esimerkiksi kokonaislukua käytetään kertolaskussa yhdessä reaaliluvun kanssa, molemmat luvut muunnetaan reaaliluvuiksi. Palautusarvo on myös REAALI.

Jakolasku (/)

Seuraavassa taulukossa riviotsikko on osoittaja ja sarakeotsikko on nimittäjä.

Operaattori (/) (rivi/sarake) KOKONAISLUKU CURRENCY REAALI Päivämäärä/kellonaika
KOKONAISLUKU REAALI CURRENCY REAALI REAALI
CURRENCY VALUUTTA REAALI CURRENCY REAALI
REAALI REAALI REAALI REAALI REAALI
Päivämäärä/kellonaika REAALI REAALI REAALI REAALI

Jos esimerkiksi kokonaislukua käytetään jakolaskussa yhdessä valuutta-arvon kanssa, molemmat arvot muunnetaan reaaliluvuiksi. Palautusarvo on myös reaaliluku.

Vertailuoperaattorit

Vertailulausekkeissa totuusarvoja pidetään suurempina kuin merkkijonoarvoja ja merkkijonoarvoja pidetään suurempina kuin numeerisia arvoja tai päivämäärä-/kellonaika-arvoja. Numeroita ja päivämäärä-/kellonaika-arvoja pidetään samanarvoisina. Totuusarvoille tai merkkijonoarvoille ei suoriteta implisiittistä muuntamista. TYHJÄ tai tyhjä arvo muunnetaan arvoksi 0/""/false toisen verratun arvon tietotyypin mukaan.

Seuraavat DAX-lausekkeet kuvaavat tätä toimintoa:

=IF(FALSE()>"tosi","lauseke on tosi", "lauseke on epätosi"), funktio palauttaa "lauseke on tosi"

=IF("12">12,"lauseke on tosi", "lauseke on epätosi"), funktio palauttaa "lauseke on tosi"

=IF("12"=12,"lauseke on tosi", "lauseke on epätosi"), funktio palauttaa "lauseke on epätosi"

Muunnokset suoritetaan implisiittisesti numeerisille tyypeille tai päivämäärä-/kellonaikatyypeille seuraavan taulukon mukaisesti:

Vertailuoperaattori KOKONAISLUKU CURRENCY REAALI Päivämäärä/kellonaika
KOKONAISLUKU KOKONAISLUKU CURRENCY REAALI REAALI
CURRENCY CURRENCY VALUUTTA REAALI REAALI
REAALI REAALI REAALI REAALI REAALI
Päivämäärä/kellonaika REAALI REAALI REAALI Päivämäärä ja aika

Tyhjien, tyhjien merkkijonojen ja nolla-arvojen käsitteleminen

Nolla-arvoa, tyhjää arvoa, tyhjää solua tai puuttuvaa arvoa edustaa DAX-kielessä aina sama uusi arvotyyppi TYHJÄ. Tyhjiä arvoja voi myös luoda TYHJÄ-funktiolla tai testata tyhjät ONTYHJÄ-funktiolla.

Tyhjien käsittelytapa toiminnoissa, kuten yhteenlaskussa ja ketjutuksessa, vaihtelee yksittäisen toiminnon mukaan. Seuraavassa taulukossa on yhteenveto siitä, miten DAX-kaavan ja Microsoft Excel -kaavan tyhjien käsittely eroaa toisistaan.

Lauseke DAX Excel
TYHJÄ + TYHJÄ TYHJÄ 0 (nolla)
TYHJÄ + 5 5 5
TYHJÄ * 5 TYHJÄ 0 (nolla)
5/TYHJÄ Ääretön Virhe
0/TYHJÄ NaN Virhe
TYHJÄ/TYHJÄ TYHJÄ Virhe
EPÄTOSI TAI TYHJÄ EPÄTOSI EPÄTOSI
EPÄTOSI JA TYHJÄ EPÄTOSI EPÄTOSI
TOSI TAI TYHJÄ TOSI TOSI
TOSI JA TYHJÄ EPÄTOSI TOSI
TYHJÄ TAI TYHJÄ TYHJÄ Virhe
TYHJÄ JA TYHJÄ TYHJÄ Virhe

Seuraavat vaiheet

Voit tehdä kaikenlaista Power BI Desktop ja tiedoilla. Saat lisätietoja sen toiminnoista seuraavista resursseista: