Muistiinpano
Tämän sivun käyttö edellyttää valtuutusta. Voit yrittää kirjautua sisään tai vaihtaa hakemistoa.
Tämän sivun käyttö edellyttää valtuutusta. Voit yrittää vaihtaa hakemistoa.
Tässä artikkelissa kuvataan tietotyyppejä, joita Power BI- ja Data Analysis Expressions (DAX) tukevat.
Kun Power BI lataa dataa, se pyrkii muuntamaan lähdesarakkeiden tietotyypit tietotyypeiksi, jotka tukevat tehokkaampaa tallennusta, laskelmia ja datan visualisointia. Esimerkiksi, jos Excelistä tuomassasi arvosarakkeessa ei ole murtolukuja, Power BI muuntaa datasarakkeen kokonaisluku-tietotyypiksi, joka sopii paremmin kokonaislukujen tallentamiseen.
Tämä käsite on tärkeä, koska joillakin DAX-toiminnoilla on erityisiä tietotyyppivaatimuksia. Monissa tapauksissa DAX muuntaa epäsuorasti tietotyyppejä, mutta joissain tapauksissa ei. Esimerkiksi, jos DAX-funktio vaatii päivämäärätyypin , mutta sarakkeen tietotyyppi on Teksti, DAX-funktio ei toimi oikein. Siksi on tärkeää ja hyödyllistä käyttää oikeita tietotyyppejä sarakkeissa.
Määritä ja määritä sarakkeen tietotyyppi
Power BI:ssä voit määrittää ja määrittää sarakkeen tietotyypin Power Query Editorissa, taulukkonäkymässä tai raporttinäkymässä:
Power Query Editorissa valitse sarake ja valitse sitten Muunnosryhmästä Tietotyyppi.
Taulukkonäkymässä tai Raporttinäkymässä valitse sarake ja valitse sitten pudotusvalikon nuoli Datatyypin vierestä nauhan Saraketyökalut-välilehdellä .
Voit myös asettaa tietotyyppejä Power Query M -koodilla käyttämällä Advanced Editoria. Lisätietoja M-tietotyypeistä ja funktiosta Table.TransformColumnTypes löytyy kohdasta Data types in Power Query sekä Types and type conversion.
Power Query Editorin tietotyypin pudotusvalikossa on kaksi tietotyyppiä, joita ei ole Taulukko- tai Raporttinäkymässä: Päivämäärä/Aika/Aikavyöhyke ja Kesto. Kun lataat sarakkeen, jossa on nämä tietotyypit, Power BI -malliin, Date/Timezone -sarake muunnetaan Date/Time-tietotyypiksi ja Duration -sarake Desimaaliluku-tietotyypiksi .
Binaaridatatyyppiä ei tueta Power Query Editorin ulkopuolella. Power Query Editorissa voit käyttää binääridatatyyppiä ladatessasi binääritiedostoja, jos muunnat ne muihin tietotyyppeihin ennen Power BI -mallin lataamista. Binäärivalinta löytyy Table- ja Report view -valikoista perinteisistä syistä, mutta jos yrität ladata binäärisarakkeita Power BI -malliin, saatat törmätä virheisiin.
Lukutyypit
Power BI tukee kolmea lukutyyppiä: desimaaliluku, kiinteä desimaaliluku ja kokonaisluku.
Voit käyttää Tabular Object Model (TOM) -sarakkeen DataType ominaisuutta määrittääksesi DataType lukutyypeille Enumit. Lisätietoja Power BI:n olioiden ohjelmallisesta muokkaamisesta löytyy kohdasta Program Power BI semanttic models with the Tabular Object Model.
Desimaaliluku
Desimaaliluku on yleisin lukutyyppi, ja se voi käsitellä sekä murtolukuja että kokonaislukuja. Desimaaliluku edustaa 64-bittisiä (kahdeksan tavua) liukulukulukuja, joilla on negatiiviset arvot - 1.79E +308 – -2.23E -308, positiiviset arvot 2.23E -308 – 1.79E +308 ja 0. Numerot kuten 34, 34.01 ja 34.000367063 ovat päteviä desimaalilukuja.
Korkein tarkkuus, jonka desimaalilukutyyppi voi edustaa, on 15 numeroa. Desimaalierotin voi ilmetä missä tahansa luvun kohdassa. Tämä tyyppi vastaa sitä, miten Excel tallentaa numeronsa, ja TOM määrittelee tämän tyypin Enumiksi DataType.Double .
Kiinteä desimaaliluku
Kiinteän desimaaliluvun tietotyypillä on kiinteä sijainti desimaalierottimelle. Desimaalierottimessa on aina neljä numeroa oikealla puolellaan, ja se sallii 19 merkitysnumeroa. Suurin arvo, jonka kiinteä desimaaliluku voi edustaa, on positiivinen tai negatiivinen 922 337 203 685 477,5807.
Kiinteä desimaalilukutyyppi on hyödyllinen tilanteissa, joissa pyöristys voi aiheuttaa virheitä. Luvut, joilla on pieniä murtolukuja, voivat joskus kertyä ja pakottaa luvun olemaan hieman epätarkka. Kiinteä desimaalilukutyyppi voi auttaa välttämään tällaisia virheitä katkaisemalla arvot neljän numeron yli desimaalierottimen oikealla puolella.
Tämä tietotyyppi vastaa SQL Serverin Desimaalia (19,4) tai Analysis Servicesin ja Power Pivotin Currency-tietotyyppiä Excelissä. TOM määrittelee tämän tyypin Enumiksi DataType.Decimal .
Kokonaisluku
Kokonaisluku edustaa 64-bittistä (kahdeksan tavua) kokonaislukua. Koska kyseessä on kokonaisluku, kokonaisluvulla ei ole numeroita desimaalin oikealla puolella. Tämä tyyppi sallii 19 numeron positiivisia tai negatiivisia kokonaislukuja välillä -9,223,372,036,854,775,807 (-2^63+1) ja 9,223,372,036,854,775,806 (2^63-2), joten se voi edustaa mahdollisimman suuria numeerisia tietotyyppejä.
Kuten kiinteässä desimaalityypissä , kokonaislukutyyppi voi olla hyödyllinen, kun pyöristystä täytyy hallita. TOM edustaa kokonaislukudatatyyppiä muodossa DataType.Int64 Enum.
Note
Power BI:n datamalli tukee 64-bittisiä kokonaislukuarvoja, mutta JavaScriptin rajoitusten vuoksi suurin Power BI:n visuaalien turvallisesti ilmaisema määrä on 9 007 199 254 740 991 (2^53-1). Jos datamallissasi on suurempia lukuja, voit pienentää niiden kokoa laskemalla ennen kuin lisäät ne visuaaleihin.
Lukutyyppilaskelmien tarkkuus
Desimaalilukutyypin sarakkearvot tallennetaan likimääräisiksi tietotyypeiksi IEEE 754 -standardin mukaisesti liukulukuluvuille. Likimääräisillä tietotyypeillä on luontaisia tarkkuusrajoituksia, koska ne eivät tallenna tarkkoja lukuarvoja, vaan voivat tallentaa erittäin läheisiä tai pyöristettyjä approksimaatioita.
Tarkkuusmenetys tai epätarkkuus voi tapahtua, jos liukulukuarvo ei luotettavasti pysty kvantifioimaan liukulukunumeroiden määrää. Epätarkkuus voi ilmetä odottamattomina tai epätarkkoina laskentatuloksina joissakin raportointitilanteissa.
Yhtälöihin liittyvät vertailulaskelmat desimaalilukutyypin arvojen välillä voivat mahdollisesti tuottaa odottamattomia tuloksia. Tasa-arvovertailuihin kuuluvat yhtäsuuret =, jotka ovat suurempia kuin >, pienempiä <, suurempia tai yhtä suuria >=kuin , ja pienempiä tai yhtä suuria <=kuin .
Tämä ongelma ilmenee selvimmin, kun käytät RANKX-funktiota DAX-lausekkeessa, joka laskee tuloksen kahdesti, jolloin luvut ovat hieman erilaiset. Raporttien käyttäjät eivät välttämättä huomaa eroa näiden kahden numeron välillä, mutta sijoitustulos voi olla selvästi epätarkka. Yllättävien tulosten välttämiseksi voit muuttaa sarakkeen tietotyypin desimaaliluvusta joko kiinteään desimaalilukuon tai kokonaislukuun, tai tehdä pakotetun pyöristyksen käyttämällä ROUNDia. Kiinteä desimaaliluku -tietotyyppi on tarkempi, koska desimaalierottimessa on aina neljä numeroa oikealla puolellaan.
Harvoin laskelmat, jotka summaavat desimaalilukutyypin sarakkeen arvot, voivat tuottaa odottamattomia tuloksia. Tämä tulos on todennäköisimmin sarakkeissa, joissa on suuria määriä sekä positiivisia että negatiivisia lukuja. Summatulokseen vaikuttaa arvojen jakautuminen sarakkeen rivien välillä.
Jos vaadittu laskenta summaa suurimman osan positiivisista luvuista ennen negatiivisten lukujen summaa, suuri positiivinen osasumma alussa voi mahdollisesti vääristää tuloksia. Jos laskenta sattuu lisäämään tasapainoiset positiiviset ja negatiiviset luvut, kysely säilyttää tarkkuutensa ja antaa siten tarkempia tuloksia. Yllättävien tulosten välttämiseksi voit vaihtaa sarakkeen tietotyypin desimaaliluvustakiinteäksi desimaaliluvuksi tai kokonaisluvuksi.
Päivämäärä/aika-tyypit
Power BI tukee viittä päivämäärä/aika-tietotyyppiä Power Query Editorissa. Sekä päivämäärä/aika/aikavyöhyke että kesto muunnetaan latauksen aikana datamalliin seuraavasti:
Päivämäärä/aika edustaa sekä päivämäärää että aikaa. Taustalla oleva päivämäärä/aika-arvo tallennetaan desimaalilukuna, joten voit oikeasti muuntaa näiden kahden välillä. Aikaosuus tallennetaan murto-osuutena kokonaiskertoimiin 1/300 sekuntia (3,33 ms). Tietotyyppi tukee vuosia vuosien 1900 ja 9999 välillä.
Päivämäärä tarkoittaa vain päivämäärää ilman aikaosuutta. Päivämäärä muunnetaan malliksi päivämäärä/aika-arvona, jossa murtoluku on nolla.
Aika edustaa vain aikaa, jossa ei ole päivämäärää. Aika muunnetaan malliksi päivämäärä/aika-arvoksi ilman numeroita desimaalipisteen vasemmalla puolella.
Date/Time/Timezone edustaa UTC-päivämäärää/aikaa aikavyöhykesiirtymällä, ja muunnetaan muotoon Date/Time , kun se ladataan malliin. Power BI -malli ei säädä aikavyöhykettä käyttäjän sijainnin tai sijainnin mukaan. Malliin ladattuna arvo 09:00 Yhdysvalloissa näkyy 09:00 aina, missä raportti avataan tai katsotaan.
Kesto edustaa aikaa, ja muunnetaan desimaaliluvuksi , kun se ladataan malliin. Siksi voit lisätä tai vähentää arvoja päivämäärä/aika-arvoista oikeilla tuloksilla, ja käyttää sitä helposti visualisoinneissa, joissa näkyy suuruus.
Note
Voit lisäksi muotoilla muunnetun päivämäärä/aika-arvon mallissa muotoon päivämäärä tai aika käyttämällä tietotyyppien käyttöliittymää raportissa, taulukossa ja mallinäkymässä. Muista, että muotoilu ei muuta datan tallennusta malliin, ja mahdolliset laskelmat tai suhteet arvioidaan edelleen päivämäärä/ aika-tietojen avulla, riippumatta muotoilusta.
Tekstityyppi
Tekstitietotyyppi on Unicode-merkkijono, joka voi olla kirjaimia, numeroita tai päivämääriä tekstimuodossa. Käytännössä merkkijonon pituuden enimmäisraja on noin 32 000 Unicode-merkkiä, perustuen Power BI:n Power Query -moottoriin ja sen rajoituksiin tekstidatatyyppien pituudelle. Tekstitietotyypit, jotka ylittävät käytännön maksimirajan, johtavat todennäköisesti virheisiin.
Tapa, jolla Power BI tallentaa tekstidataa, voi saada datan näyttämään eri tavalla tietyissä tilanteissa. Seuraavissa osioissa kuvataan yleisiä tilanteita, jotka voivat aiheuttaa tekstidatan ulkonäön hieman muuttumisen Power Query Editorissa kyselyjen ja Power BI:n lataamisen välillä.
Kirjainkoon merkitsevyys
Power BI:ssä dataa tallentava ja kyselymoottori on kirjainkoon riippumaton ja käsittelee kirjainten eri isot kirjaimet samana arvona. "A" on yhtä kuin "a". Power Query on kuitenkin kirjainkoon herkkä, missä "A" ei ole sama kuin "a". Ero kirjainkoon herkkyydessä voi johtaa tilanteisiin, joissa tekstidatan isot kirjaimet muuttuvat ilmeisesti selittämättömästi Power BI:n latauksen jälkeen.
Seuraava esimerkki näyttää tilaustiedot: OrderNo-sarake , joka on yksilöllinen jokaiselle tilaukselle, ja Vastaanottaja-sarakke , jossa vastaanottajan nimi syötetään manuaalisesti tilauksen aikaan. Power Query Editor näyttää useita tilauksia, joilla on samat vastaanottajien nimet, syötettyinä järjestelmään vaihtelevalla alkukirjaimella.
Kun Power BI lataa datan, Data-välilehden kaksoisnimien isot kirjaimet muuttuvat alkuperäisestä merkinnästä johonkin isojen kirjaimen variantteihin.
Tämä muutos johtuu siitä, että Power Query Editor on kirjainkoon herkkä, joten se näyttää tiedot täsmälleen lähdejärjestelmässä tallennettuna olevana. Power BI:ssä dataa tallentava moottori on kirjainkoon sensiktiivinen, joten se käsittelee merkin pien- ja isot kirjaimet identtisinä. Power Query -data, joka on ladattu Power BI -moottoriin, voi muuttua sen mukaisesti.
Power BI -moottori arvioi jokaisen rivin erikseen, kun se lataa dataa, aloittaen ylhäältä. Jokaiselle tekstisarakkeelle, kuten Addressee, moottori tallentaa sanakirjan ainutlaatuisista arvoista, parantaen suorituskykyä datan pakkaamisen avulla. Moottori näkee vastaanottaja-sarakkeen kolme ensimmäistä arvoa yksilöinä ja tallentaa ne sanakirjaan. Tämän jälkeen, koska moottori ei ole kirjainkoon herkkä, se arvioi nimet identtisiksi.
Veturi pitää nimeä "Taina Hasu" identtisena "TAINA HASU" ja "Taina HASU" kanssa, joten se ei tallenna näitä variaatioita, vaan viittaa ensimmäiseen varastoimaan muunnelmaan. Nimi "MURALI DAS" esiintyy isoilla kirjaimilla, koska näin nimi ilmestyi ensimmäisellä kerralla, kun moottori arvioi dataa ylhäältä alas.
Tämä kuva havainnollistaa arviointiprosessia:
Edellisessä esimerkissä Power BI -moottori lataa ensimmäisen datarivin, luo Addressee-sanakirjan ja lisää siihen Taina Hasun. Moottori lisää myös viittauksen tähän arvoon Addressee-sarkeeseen taulussa, jonka se lataa. Moottori tekee saman toiselle ja kolmannelle riville, koska nämä nimet eivät vastaa muita, kun sijaa ei huomioita.
Neljännellä rivillä moottori vertaa arvoa sanakirjan nimiin ja löytää nimen. Koska moottori on kirjaimeton, "TAINA HASU" ja "Taina Hasu" ovat samat. Moottori ei lisää sanakirjaan uutta nimeä, vaan viittaa olemassa olevaan nimeen. Sama prosessi tapahtuu myös muilla riveillä.
Tärkeää
Koska moduulissa, joka tallentaa ja tekee kyselyjä Power BI:ssä, kirjainkoolla ei ole merkitystä, ole erityisen varovainen, kun työskentelet DirectQuery-tilassa kirjainkoolla merkitsevän lähteen kanssa. Power BI olettaa, että lähde on poistanut rivien kaksoiskappaleet. Koska Power BI:ssä kirjainkoolla ei ole merkitystä, se käsittelee kahta arvoa, jotka eroavat toisistaan vain kirjainkoon mukaan, kaksoiskappaleina, kun taas lähde ei välttämättä käsittele niitä sellaisina. Tällaisissa tapauksissa lopputulos on määrittelemätön.
Jos käytät DirectQuery-tilaa kirjainkoolla merkitsevän tietolähteen kanssa, normalisoi tämä tilanne lähdekyselyssä tai Power Query -editori.
Johtavat ja perässä olevat tilat
Power BI -moottori leikkaa automaattisesti kaikki tekstidatan jälkeen tulevat tilat, mutta ei poista datan edeltäjiä etuväliä. Sekaannuksen välttämiseksi, kun työskentelet datan kanssa, jossa on etu- tai jälkivälilyöntejä, sinun tulisi käyttää Text.Trim-toimintoa poistaaksesi välilyöntejä tekstin alusta tai lopusta. Jos et poista etuvälilyöntejä, suhde voi epäonnistua luomisessa duplikaattiarvojen vuoksi, tai visuaalit saattavat tuottaa odottamattomia tuloksia.
Seuraava esimerkki näyttää tietoja asiakkaista: Nimi-sarakke, joka sisältää asiakkaan nimen, ja indeksi-sarakkeen, joka on yksilöllinen jokaiselle merkinnälle. Nimet näkyvät lainausmerkeissä selkeyden vuoksi. Asiakkaan nimi toistuu neljä kertaa, mutta joka kerta eri yhdistelmät etu- ja jälkivälilyöntejä. Näitä vaihteluita voi tapahtua manuaalisessa tiedon syöttämisessä ajan myötä.
| Row | Johtava tila | Jäljellä oleva tila | Name | Index | 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 |
Power Query Editorissa tuloksena olevat tiedot näkyvät seuraavasti.
Kun menet Power BI:n Taulukko-välilehdelle datan latauksen jälkeen, sama taulukko näyttää seuraavalta kuvalta, ja siinä on sama määrä rivejä kuin aiemmin.
Kuitenkin tähän dataan perustuva visuaali palauttaa vain kaksi riviä.
Edellisessä kuvassa ensimmäisen rivin kokonaisarvo on 60indeksikentälle , joten visuaalisen kuvan ensimmäinen rivi edustaa ladatun datan kahta viimeistä riviä. Toinen rivi, jonka kokonaisindeksiarvoon 11 , edustaa kahta ensimmäistä riviä. Ero visuaalisen ja datataulukon rivien määrässä johtuu siitä, että moottori poistaa tai karsisi automaattisesti jälkivälit, mutta ei etuväliä. Moottori arvioi siis ensimmäisen ja toisen rivin sekä kolmannen ja neljännen rivin identtisiksi, ja visuaalinen kuva palauttaa nämä tulokset.
Tämä käyttäytyminen voi myös aiheuttaa virheilmoituksia liittyen suhteisiin, koska havaitaan päällekkäiset arvot. Esimerkiksi, riippuen suhteidesi konfiguraatiosta, saatat nähdä virheen, joka muistuttaa seuraavaa kuvaa:
Toisissa tilanteissa et välttämättä pysty luomaan monta-yhteen tai yksi-yhteen-suhdetta, koska havaitaan päällekkäisiä arvoja.
Voit jäljittää nämä virheet etu- tai loppuvälikuntiin ja ratkaista ne käyttämällä Text.Trimiä tai Format>TrimiäTransform-kohdan alapuolella poistaaksesi välilyönnit Power Query Editorista.
Tosi/epätosi tyyppi
Tosi/epätosi -tietotyyppi on Boolen arvo, joka on joko tosi tai epätosi. Parhaiden ja johdonmukaisimpien tulosten saamiseksi, kun lataat sarakkeen, joka sisältää Boolen tosi/väärää tietoa, Power BI:hen, aseta sarake tyypiksi Tosi/Epätosi.
Power BI muuntaa ja näyttää dataa eri tavoin tietyissä tilanteissa. Tässä osiossa kuvataan yleisiä tapauksia Boolen arvojen muuntamisesta sekä miten käsitellä muunnokset, jotka tuottavat odottamattomia tuloksia Power BI:ssä.
Tässä esimerkissä lataat tietoa siitä, ovatko asiakkaasi tilanneet uutiskirjeesi. Arvo TRUE tarkoittaa, että asiakas on tilannut uutiskirjeen, ja arvo VÄÄRIN tarkoittaa, ettei asiakas ole rekisteröitynyt.
Kuitenkin, kun julkaiset raportin Power BI -palvelulle, uutiskirjeen tilasarakkeessa näkyy 0 ja -1 odotettujen arvojen sijaan TOSI tai VÄÄRÄ. Seuraavat vaiheet kuvaavat, miten tämä muutos tapahtuu ja miten se voidaan estää.
Tämän taulukon yksinkertaistettu kysely näkyy seuraavassa kuvassa:
Subscribed To Newsletter -sarakkeen tietotyyppi on asetettu Any, minkä seurauksena Power BI lataa datan malliin Tekstinä.
Kun lisäät yksinkertaisen visualisoinnin, joka näyttää yksityiskohtaiset tiedot asiakaskohtaisesti, data näkyy visuaalissa odotetusti sekä Power BI Desktopissa että julkaisussa Power BI -palvelussa.
Kuitenkin, kun päivität semanttista mallia Power BI -palvelussa, Subscribed To Newsletter -sarakkeessa visuaaleissa näkyy arvot -1 ja 0, sen sijaan että ne näkyisivät TOSINA tai VÄÄRINa:
Jos julkaiset raportin uudelleen Power BI Desktopista, Subscribed To Newsletter -sarakkeessa näkyy jälleen odotetusti TOSI tai VÄÄRIN , mutta kun Power BI -palvelussa tapahtuu päivitys, arvot muuttuvat jälleen - 1 ja 0.
Ratkaisu tämän tilanteen estämiseksi on asettaa kaikki Boolen sarakkeet kirjoittamaan True/False Power BI Desktopissa ja julkaista raporttisi uudelleen.
Kun teet muutoksen, visualisointi näyttää Subscribed To Newsletter -sarakkeen arvot hieman eri tavalla. Sen sijaan, että teksti olisi pelkästään isoja kirjaimia kuten taulukossa on merkitty, vain ensimmäinen kirjain on isolla kirjattu. Tämä muutos johtuu sarakkeen tietotyypin muuttamisesta.
Kun vaihdat tietotyyppiä, julkaiset sen uudelleen Power BI-palveluun ja päivitys tapahtuu, raportti näyttää arvot tosina tai epätosina, kuten odotettua.
Yhteenvetona, kun työskentelet Boolean-datan kanssa Power BI:ssä, varmista, että sarakkeet on asetettu Power BI Desktopin True/False -datatyypiksi.
Tyhjä tyyppi
Blank on DAX-tietotyyppi, joka edustaa ja korvaa SQL:n nullit. Voit luoda blankin käyttämällä BLANK-funktiota ja testata tyhjiä ISBLANK-loogisella funktiolla.
Binäärityyppi
Voit käyttää binääridatatyyppiä esittämään minkä tahansa datan binäärimuodossa. Power Query Editorissa voit käyttää tätä tietotyyppiä binääritiedostojen lataamisessa, jos muunnat sen muihin tietotyyppeihin ennen kuin lataat sen Power BI -malliin.
Binäärisarakkeita ei tueta Power BI:n datamallissa. Binäärivalinta löytyy Table- ja Report view -valikoista perinteisistä syistä, mutta jos yrität ladata binäärisarakkeita Power BI -malliin, saatat kohdata virheitä.
Note
Jos binäärisarake on kyselyn vaiheiden tulosteessa, datan päivittäminen yhdyskäytävän kautta voi aiheuttaa virheitä. Suositellaan, että poistat kaikki binäärisarakkeet viimeisenä vaiheena kyselyissäsi.
Taulukon tyyppi
DAX käyttää taulukkotietotyyppiä monissa toiminnoissa, kuten aggregaatioissa ja aikaälylaskelmissa. Jotkut funktiot vaativat viittauksen taulukkoon. Muut funktiot palauttavat taulukon, jota voit käyttää syötteenä muihin funktioihin.
Joissakin funktioissa, jotka vaativat taulukon syötteenä, voit määrittää lausekkeen, joka arvioi taululle. Jotkut funktiot vaativat viittauksen perustaulukkoon. Lisätietoja tiettyjen funktioiden vaatimuksista löytyy DAX-funktion viitteestä.
Implisiittinen ja eksplisiittinen tietotyyppimuunnos
Jokaisella DAX-funktiolla on erityiset vaatimukset sille, millaisia datatyyppejä käytetään syötteinä ja lähtöinä. Esimerkiksi jotkut funktiot vaativat kokonaislukuja joillekin argumenteille ja päivämääriä toisille. Muut toiminnot vaativat tekstiä tai taulukoita.
Jos sarakkeessa, jonka määrität argumentiksi, ei ole yhteensopiva funktion vaatiman tietotyypin kanssa, DAX saattaa palauttaa virheen. Kuitenkin, missä mahdollista, DAX pyrkii epäsuorasti muuntamaan datan vaadittuun tietotyyppiin.
Esimerkkejä:
- Jos kirjoitat päivämäärän merkkijonona, DAX jäsentää merkkijonon ja yrittää esittää sen Windowsin päivämäärä- ja aikamuodoksi.
- Voit lisätä TRUE + 1 ja saada tuloksen 2, koska DAX muuntaa implisiittisesti TRUE :n luvuksi 1 ja suorittaa operaation 1+1.
- Jos lisäät arvot kahteen sarakkeeseen, joista toinen esitetään tekstinä ("12") ja toinen numerona (12), DAX muuntaa merkkijonon epävirallisesti numeroksi ja tekee sitten yhteenlaskun numeerisen tuloksen saamiseksi. Lauseke = "22" + 22 palauttaa 44.
- Jos yrität yhdistää kaksi lukua, DAX esittää ne merkkijonoina ja yhdistää ne sitten. Lauseke = 12 & 34 palauttaa "1234".
Implisiittisten tietojen muunnosten taulukot
Operaattori määrittää, millaisen muunnoksen DAX suorittaa valamalla tarvittavat arvot ennen pyydetyn toiminnon suorittamista. Seuraavissa taulukoissa on operaattorit, ja muunnos DAX tekee kullekin tietotyypille, kun se paritetaan leikkaavan solun tietotyypin kanssa.
Note
Nämä taulukot eivät sisällä tekstitietotyyppiä . Kun numero esitetään tekstimuodossa, joissain tapauksissa Power BI yrittää määrittää lukutyypin ja esittää datan numerona.
Yhteenlasku (+)
| INTEGER | CURRENCY | REAL | Date/time | |
|---|---|---|---|---|
| INTEGER | INTEGER | CURRENCY | REAL | Date/time |
| CURRENCY | CURRENCY | CURRENCY | REAL | Date/time |
| REAL | REAL | REAL | REAL | Date/time |
| Date/time | Date/time | Date/time | Date/time | Date/time |
Esimerkiksi, jos yhteenlaskuoperaatio käyttää reaalilukua yhdistettynä valuuttadataan, DAX muuntaa molemmat arvot REAL-arvoiksi ja palauttaa tuloksen REAL-arvona.
Vähennys (-)
Seuraavassa taulukossa rivin otsikko on miniuendi (vasen puoli) ja sarakkeen otsikko on subtrahend (oikea puoli).
| INTEGER | CURRENCY | REAL | Date/time | |
|---|---|---|---|---|
| INTEGER | INTEGER | CURRENCY | REAL | REAL |
| CURRENCY | CURRENCY | CURRENCY | REAL | REAL |
| REAL | REAL | REAL | REAL | REAL |
| Date/time | Date/time | Date/time | Date/time | Date/time |
Esimerkiksi, jos vähennyslasku käyttää päivämäärää minkä tahansa muun tietotyypin kanssa, DAX muuntaa molemmat arvot päivämääriksi, ja palautusarvo on myös päivämäärä.
Note
Datamallit tukevat unaarista operaattoria, - (negatiivinen), mutta tämä operaattori ei muuta operandin datatyyppiä.
Kertolasku (*)
| INTEGER | CURRENCY | REAL | Date/time | |
|---|---|---|---|---|
| INTEGER | INTEGER | CURRENCY | REAL | INTEGER |
| CURRENCY | CURRENCY | REAL | CURRENCY | CURRENCY |
| REAL | REAL | CURRENCY | REAL | REAL |
Esimerkiksi, jos kertolaskuoperaatio yhdistää kokonaisluvun reaalilukuun, DAX muuntaa molemmat luvut reaaliluvuiksi, ja palautusarvo on myös REAL.
Divisioona (/)
Seuraavassa taulukossa rivin otsikko on osoittaja ja sarakkeen otsikko nimittäjä.
| INTEGER | CURRENCY | REAL | Date/time | |
|---|---|---|---|---|
| INTEGER | REAL | CURRENCY | REAL | REAL |
| CURRENCY | CURRENCY | REAL | CURRENCY | REAL |
| REAL | REAL | REAL | REAL | REAL |
| Date/time | REAL | REAL | REAL | REAL |
Esimerkiksi, jos jako-operaatio yhdistää kokonaisluvun valuuttaarvoon, DAX muuntaa molemmat arvot reaaliluvuiksi, ja tuloksena on myös reaaliluku.
Vertailuoperaattorit
Vertailulausekkeissa DAX pitää Boolen arvoja, jotka ovat suurempia kuin merkkijonon arvot, ja merkkijonon arvoja, jotka ovat suurempia kuin numeeriset tai päivämäärä/aika-arvot. Numeroilla ja päivämäärä/aika-arvoilla on sama arvo.
DAX ei tee implisiittisiä muunnoksia Boolean- tai merkkijonoarvoille. TYHJÄ tai tyhjä arvo muunnetaan arvoiksi 0, "" tai False, riippuen toisen vertailuarvon tietotyypistä.
Seuraavat DAX-lausekkeet havainnollistavat tätä käyttäytymistä:
=IF(FALSE()>"true","Expression is true", "Expression is false")palauttaa "Lauseke on tosi".=IF("12">12,"Expression is true", "Expression is false")palauttaa "Lauseke on tosi".=IF("12"=12,"Expression is true", "Expression is false")palauttaa "Ilmaisu on epätosi".
DAX tekee implisiittisiä muunnoksia numeerisille tai päivämäärä/aika-tyypeille, kuten seuraava taulukko kuvaa:
| Comparison Operator |
INTEGER | CURRENCY | REAL | Date/time |
|---|---|---|---|---|
| INTEGER | INTEGER | CURRENCY | REAL | REAL |
| CURRENCY | CURRENCY | CURRENCY | REAL | REAL |
| REAL | REAL | REAL | REAL | REAL |
| Date/time | REAL | REAL | REAL | päivämäärä ja aika |
Tyhjät, tyhjät merkkijonot ja nollaarvot
DAX edustaa nollaa, tyhjää arvoa, tyhjää solua tai puuttuvaa arvoa samalla uudella arvotyypillä, BLANKilla. Voit myös luoda tyhjiä BLANK-funktiolla tai testata tyhjiä ISBLANK-funktiolla.
Se, miten operaatiot kuten yhteenlasku tai yhdistäminen käsittelevät tyhjiä, riippuu yksittäisestä funktiosta. Seuraava taulukko tiivistää erot siinä, miten DAX- ja Microsoft Excel -kaavat käsittelevät tyhjiä tiedostoja.
| Expression | DAX | Excel |
|---|---|---|
| TYHJÄ + TYHJÄ | BLANK | 0 (nolla) |
| TYHJÄ + 5 | 5 | 5 |
| TYHJÄ * 5 | BLANK | 0 (nolla) |
| 5/BLANK | Infinity | Error |
| 0/BLANK | ei nro | Error |
| BLANK/BLANK | BLANK | Error |
| VÄÄRÄ VAI TYHJÄ | FALSE | FALSE |
| VÄÄRÄ JA TYHJÄ | FALSE | FALSE |
| TOTTA VAI TYHJÄÄ | TRUE | TRUE |
| TOSI JA TYHJÄ | FALSE | TRUE |
| TYHJÄ TAI TYHJÄ | BLANK | Error |
| TYHJÄÄ JA TYHJÄÄ | BLANK | Error |
Liittyvä sisältö
Voit tehdä kaikenlaisia asioita Power BI:llä ja datalla. Lisätietoja Power BI:n ominaisuuksista löytyy seuraavista resursseista: