Tietotyypit tietomalleissa

Käytetään kohteeseen
Excel for Microsoft 365 Excel 2024 Excel 2021 Excel 2019 Excel 2016

Tietomallissa jokaiseen sarakkeeseen on liitetty tietotyyppi, joka määrittää, minkä tyyppisiä tietoja sarakkeessa voi olla: kokonaislukuja, desimaalilukuja, tekstiä, valuuttatietoja, päivämääriä ja kellonaikoja. Tietotyyppi määrittää myös, minkälaisia toimintoja sarakkeessa voi tehdä ja kuinka paljon muistia sarakkeeseen tallennettaviin arvoihin tarvitaan.

Jos käytät Power Pivot -apuohjelmaa, voit muuttaa sarakkeen tietotyypin. Voit joutua tekemään näin, jos päivämääräsarake tuotiin merkkijonona, mutta tarvitset sen olevan jotain muuta. Lisätietoja on artikkelissa Sarakkeen tietotyypin määrittäminen Power Pivotissa.

Artikkelin sisältö

Yhteenveto tietotyypeistä

Seuraavassa taulukossa on lueteltu tietomallissa tuetut tietotyypit. Kun tuot tietoja tai käytät arvoa kaavassa, tiedot muunnetaan joksikin näistä tietotyypeistä, vaikka alkuperäinen tietolähde sisältäisi eri tietotyypin. Myös kaavoista muodostuvat arvot käyttävät näitä tietotyyppejä.

Tietotyyppi Excelissä Tietotyyppi DAX-kielessä Kuvaus
Kokonaisluku 64-bittinen (kahdeksan tavua) kokonaislukuarvo 1, 2 Luvut, joissa ei ole desimaaleja. Kokonaisluvut voivat olla positiivisia tai negatiivisia lukuja, mutta niiden on oltava kokonaislukuja väliltä -9 223 372 036 854 775 808 (-2^63) ja 9 223 372 036 854 775 807 (2^63-1).
Desimaaliluku 64-bittinen (kahdeksan tavua) reaaliluku 1, 2 Reaaliluvut ovat lukuja, joissa voi olla desimaaleja. Reaaliluvut kattavat laajan arvoalueen:
Negatiiviset arvot väliltä -1,79E +308 ja -2,23E -308
Nolla
Positiiviset arvot 2,23E -308 – 1,79E + 308
Merkitsevien numeroiden määrä on kuitenkin rajoitettu 15 desimaaliin.
TOSI/EPÄTOSI totuusarvo Tosi- tai epätosi-arvon.
Teksti String Unicode-merkin tietomerkkijono. Voi olla merkkijonoja, numeroita tai päivämääriä tekstimuodossa.
Merkkijonon enimmäispituus on 268 435 456 Unicode-merkkiä (256 megamerkkiä) tai 536 870 912 tavua.
Päivämäärä Päivämäärä/kellonaika Päivämäärät ja kellonajat hyväksytyssä päivämäärä- ja kellonaikamuodossa.
Kelvollisia päivämääriä ovat kaikki päivämäärän 1.1.1900 jälkeen olevat päivämäärät.
Valuutta Valuutta Valuutta-tietotyyppi sallii arvot väliltä -922 337 203 685 477,5808–922 337 203 685 477,5807 neljän desimaalin tarkkuudella.
Tyhjä Tyhjä on DAX-kielen tietotyyppi, joka edustaa ja korvaa SQL:n tyhjäarvoja. Voit luoda tyhjän TYHJÄ-funktiolla ja testata tyhjät solut loogisella funktiolla ONTYHJÄ.

1 DAX-kaavat eivät tue taulukossa lueteltuja tietotyyppejä.

2 Jos yrität tuoda tietoja, joissa on hyvin suuria numeerisia arvoja, tuonti saattaa epäonnistua ja näyttöön saattaa tulla seuraava virhesanoma:

Muistissa oleva tietokantavirhe: Taulukon< nimi> -taulukon sarakkeen< nimi> -sarake sisältää arvon 1.7976931348623157e+308, jota ei tueta. Toiminto on peruutettu.

Tämä virhe ilmenee, koska Power Pivot käyttää kyseistä arvoa tyhjäarvojen esittämiseen. Seuraavan luettelon arvot ovat tyhjäarvon synonyymejä:

Arvo
9223372036854775807
-9223372036854775808
1,7976931348623158e+308
2.2250738585072014E-308

Poista arvo tiedoista ja yritä tuoda tiedot uudelleen.

Taulukon tietotyyppi

DAX käyttää taulukkotietotyyppiä monissa funktioissa, kuten koosteissa ja aikatietojen laskutoimituksissa. Jotkin funktiot edellyttävät taulukkoviittauksen. Toiset funktiot palauttavat taulukon, jota voi sitten käyttää muiden funktioiden syötteenä. Joissakin funktioissa, jotka edellyttävät syötteenä taulukkoa, voit määrittää lausekkeen, joka palauttaa taulukon. Joidenkin funktioiden kohdalla on käytettävä viittausta perustaulukkoon. Lisätietoja tiettyjen funktioiden vaatimuksista on DAX-funktiohakemistossa.

DAX-kaavojen implisiittinen ja eksplisiittinen tietotyypin muuntaminen

Kullakin DAX-funktiolla on omat vaatimuksensa syötteinä ja tuotoksina käytettävien tietotyyppien suhteen. Jotkin funktiot edellyttävät esimerkiksi kokonaislukuja joillekin argumenteille ja päivämääriä toisille. Muut funktiot edellyttävät tekstiä tai taulukoita.

Jos argumentiksi määritetyn sarakkeen tiedot eivät ole yhteensopivia funktion edellyttämän tietotyypin kanssa, DAX palauttaa usein virheen. DAX yrittää kuitenkin aina kun se on mahdollista, muuntaa tiedot epäsuorasti pakolliseksi tietotyypiksi. Esimerkki:

  • Voit kirjoittaa päivämäärän merkkijonona, jolloin DAX jäsentää merkkijonon ja yrittää luoda sen johonkin Windowsin päivämäärä- ja kellonaikamuotoon.
  • Voit lisätä tuloksen TOSI + 1 ja saada tulokseksi 2, koska TOSI muunnetaan implisiittisesti luvuksi 1 ja toiminto 1+1 suoritetaan.
  • Jos lasket arvoja yhteen kahdessa sarakkeessa ja toinen arvo esitetään tekstinä ("12") ja toinen lukuna (12), DAX implisiittisesti muuntaa merkkijonon luvuksi ja laskee sitten yhteen numeerisen tuloksen. Seuraava lauseke palauttaa arvon 44: = "22" + 22
  • Jos yrität ketjuttaa kaksi lukua, Excel esittää ne merkkijonoina ja yhdistää ne sen jälkeen. Seuraava lauseke palauttaa arvon "1234": = 12 & 34

Seuraavassa taulukossa on yhteenveto kaavoissa suoritetuista implisiittisistä tietotyyppimuunnoksista. Excel suorittaa implisiittiset muunnokset määritetyn toiminnon edellyttämällä tavalla, kun se on mahdollista.

Implisiittisten tietomuunnosten taulukko

Operaattori määrittää suoritettavan muunnon tyypin, joka määrittää tarvitsemansa arvot ennen pyydetyn toiminnon suorittamista. Näissä taulukoissa luetellaan operaattorit ja ilmoitetaan muunnos, joka suoritetaan kullekin sarakkeen tietotyypille, kun se yhdistetään leikkaavan rivin tietotyyppiin.

Huomautus

Tekstitietotyypit eivät sisälly näihin taulukoihin. Kun luku esitetään tekstimuodossa, Power Pivot yrittää joissakin tapauksissa määrittää luvun tyypin ja esittää sen lukuna.

Yhteenlasku (+)

Operaattori (+) INTEGER VALUUTTA REAL Päivämäärä/kellonaika
INTEGER INTEGER VALUUTTA REAL Päivämäärä/kellonaika
VALUUTTA VALUUTTA VALUUTTA REAL 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 yhteenlaskussa käytetään reaalilukua yhdessä valuuttatietojen kanssa, molemmat arvot muunnetaan REAL-arvoiksi ja tulos palautetaan REAL-arvona.

Vähennyslasku (-)

Seuraavassa taulukossa rivin otsikko on miinusotsikko (vasen puoli) ja sarakeotsikko on alareuna (oikea puoli).

Operaattori (-) INTEGER VALUUTTA REAL Päivämäärä/kellonaika
INTEGER INTEGER VALUUTTA REAALI REAALI
VALUUTTA VALUUTTA 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 päivämäärää käytetään esimerkiksi vähennyslaskussa minkä tahansa muun tietotyypin kanssa, molemmat arvot muunnetaan päivämääriksi ja myös palautusarvo on päivämäärä.

Huomautus

Tietomallit tukevat myös unaarista operaattoria - (negatiivinen), mutta tämä operaattori ei muuta operandin tietotyyppiä.

Kertolasku (*)

Operaattori (*) INTEGER VALUUTTA REAL Päivämäärä/kellonaika
INTEGER INTEGER VALUUTTA REAL INTEGER
VALUUTTA VALUUTTA REAL VALUUTTA VALUUTTA
REAALI REAALI VALUUTTA REAALI REAALI

Jos kertolaskutoiminnossa esimerkiksi kokonaisluku yhdistetään reaalilukuun, molemmat luvut muunnetaan reaaliluvuiksi ja myös palautusarvo on REAALI.

Jakolasku (/)

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

Operaattori (/)
(rivi/sarake)
INTEGER VALUUTTA REAL Päivämäärä/kellonaika
INTEGER REAL VALUUTTA REAALI REAALI
VALUUTTA VALUUTTA REAL VALUUTTA REAALI
REAALI REAALI REAALI REAALI REAALI
Päivämäärä/kellonaika REAALI REAALI REAALI REAALI

Jos kokonaisluku yhdistetään esimerkiksi valuutta-arvoon jakolaskutoimituksessa, molemmat arvot muunnetaan reaaliluvuiksi ja myös tulos on reaaliluku.

Vertailuoperaattorit

Vertailulausekkeissa totuusarvoja pidetään suurempina kuin merkkijonoarvoja ja merkkijonoarvoja suurempina kuin numeerisia arvoja tai päivämäärä- ja aika-arvoja. Luvuilla ja päivämäärä-/aika-arvoilla katsotaan olevan sama sijainti. Totuusarvoille tai merkkijonoarvoille ei suoriteta implisiittisiä muunnoksia. TYHJÄ tai tyhjä arvo muunnetaan arvoksi 0/""/false toisen vertailun arvon tietotyypin mukaan.

Tätä havainnollistavat seuraavat DAX-lausekkeet:

=JOS(EPÄTOSI()>"tosi","Lauseke on tosi", "Lauseke on epätosi"), palauttaa arvon "Lauseke on tosi"

=JOS("12">12,"Lauseke on tosi", "Lauseke on epätosi"), palauttaa arvon "Lauseke on tosi".

=JOS("12"=12;"Lauseke on tosi", "Lauseke on epätosi") palauttaa arvon "Lauseke on epätosi"

Muunnokset suoritetaan implisiittisesti numeerisille tyypeille tai päivämäärä- ja aikatyypeille seuraavassa taulukossa kuvatulla tavalla:

Vertailuoperaattori INTEGER VALUUTTA REAL Päivämäärä/kellonaika
INTEGER INTEGER VALUUTTA REAALI REAALI
VALUUTTA VALUUTTA VALUUTTA REAALI REAALI
REAALI REAALI REAALI REAALI REAALI
Päivämäärä/kellonaika REAALI REAALI REAALI Päivämäärä/kellonaika

Sivun alkuun

Tyhjien merkkijonojen ja nolla-arvojen käsittely

DAX-kielessä tyhjää arvoa, tyhjää arvoa, tyhjää solua tai puuttuvaa arvoa edustaa sama uusi arvotyyppi eli BLANK. Voit myös luoda tyhjiä soluja TYHJÄT-funktiolla tai testata tyhjiä arvoja ONTYHJÄ-funktiolla.

Se, miten tyhjiä paloja käsitellään toiminnoissa, kuten yhteenlaskussa tai ketjutuksessa, riippuu yksittäisestä funktiosta. Seuraavassa taulukossa on yhteenveto DAX- ja Microsoft Excel -kaavojen välisistä eroista tyhjien tietojen käsittelyssä.

Expression DAX-kieli Excel
TYHJÄ + TYHJÄ TYHJÄ 0 (nolla)
TYHJÄ +5 5 5
TYHJÄ * 5 TYHJÄ 0 (nolla)
5/BLANK Ää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

Lisätietoja siitä, miten tietty funktio tai operaattori käsittelee tyhjiä kohtia, on kunkin DAX-funktion omassa ohjeaiheessa DAX-funktioiden opas.

Sivun alkuun