V podatkovnem modelu ima vsak stolpec povezan podatkovni tip, ki določa vrsto podatkov, ki jih lahko vsebuje stolpec: cela števila, decimalna števila, besedilo, denarni podatki, datumi in ure itd. Podatkovni tip določa tudi, katere vrste operacij lahko izvajate v stolpcu in koliko pomnilnika je potrebno za shranjevanje vrednosti v stolpec.
Če uporabljate dodatek Power Pivot, lahko spremenite podatkovni tip stolpca. To boste morda morali storiti, če je bil stolpec z datumom uvožen kot niz, vendar mora biti nekaj drugega. Če želite več informacij, glejte Nastavitev podatkovnega tipa stolpca v dodatku Power Pivot.
V tem članku
Povzetek podatkovnih tipov
V spodnji tabeli so navedeni podatkovni tipi, ki jih podpira podatkovni model. Ko uvozite podatke ali uporabite vrednost v formuli, se podatki pretvorijo v enega od teh podatkovnih tipov, tudi če izvirni vir podatkov vsebuje drugačen podatkovni tip. Vrednosti, ki izhajajo iz formul, uporabljajo tudi te podatkovne tipe.
| Podatkovni tip v Excelu | Podatkovni tip v jeziku DAX | Opis |
|---|---|---|
| Cela številka | 64-bitna (osembajtovna) cela vrednost 1, 2 | Števila, ki nimajo decimalnih mest. Cela števila so lahko pozitivna ali negativna števila, vendar morajo biti cela števila med -9.223.372.036.854.775.808 (-2^63) in 9.223.372.036.854.775.807 (2^63-1). |
| Decimalno število | 64-bitna (osembajtovna) realna številka 1, 2 | Realna števila so števila, ki imajo lahko decimalna mesta. Realna števila pokrivajo širok razpon vrednosti: Negativne vrednosti od -1,79E +308 do -2,23E -308 Nič Pozitivne vrednosti od 2,23E -308 do 1,79E + 308 Vendar pa je število pomembnih števk omejeno na 15 decimalnih števk. |
| RESNIČNO/NAPAČNO | Logičen | Vrednost »True« ali »False«. |
| Text (Besedilo) | String | Podatkovni niz znakov Unicode. Lahko so nizi, številke ali datumi, predstavljeni v besedilni obliki. Največja dolžina niza je 268.435.456 znakov Unicode (256 mega znakov) ali 536.870.912 bajtov. |
| Datum | Datum/čas | Datumi in ure v sprejetem prikazu datuma in časa. Veljavni datumi so vsi datumi po 1. januarju 1900. |
| Valuta | Valuta | Podatkovni tip valute omogoča vrednosti med -922.337.203.685.477.5808 in 922.337.203.685.477.5807 s štirimi decimalnimi številkami fiksne natančnosti. |
| Ni na voljo | Prazno | Prazen je podatkovni tip v jeziku DAX, ki predstavlja in nadomešča ničle SQL. Prazno lahko ustvarite s funkcijo BLANK, prazne vrednosti pa preskusite z logično funkcijo ISBLANK. |
1 Formule jezika DAX ne podpirajo podatkovnih tipov, ki so manjši od tistih, ki so navedeni v tabeli.
2 Če poskusite uvoziti podatke z zelo velikimi številskimi vrednostmi, uvoz morda ne bo uspešen s to napako:
Napaka zbirke podatkov v pomnilniku: stolpec »<ime> stolpca« v tabeli »<ime> tabele« vsebuje vrednost »1.7976931348623157e+308«, ki ni podprta. Operacija je bila preklicana.
Do te napake pride, ker Power Pivot uporablja to vrednost za predstavitev ničel. Vrednosti na spodnjem seznamu so sopomenke za vrednost null:
| Value (Vrednost) |
|---|
| 9223372036854775807 |
| -9223372036854775808 |
| 1,7976931348623158e+308 |
| 2.2250738585072014e-308 |
Odstranite vrednost iz podatkov in poskusite znova uvoziti.
Podatkovni tip tabele
DAX uporablja podatkovni tip tabele v številnih funkcijah, kot so združevanja in izračuni časovnega obveščanja. Nekatere funkcije zahtevajo sklicevanje na tabelo; Druge funkcije vrnejo tabelo, ki jo lahko nato uporabite kot vhod za druge funkcije. V nekaterih funkcijah, ki zahtevajo tabelo kot vnos, lahko določite izraz, ki se ovrednoti kot tabela; Za nekatere funkcije je potreben sklic na osnovno tabelo. Če želite več informacij o zahtevah določenih funkcij, glejte Sklic na funkcije jezika DAX.
Implicitna in eksplicitna pretvorba podatkovnih tipov v formulah DAX
Vsaka funkcija DAX ima posebne zahteve glede vrst podatkov, ki se uporabljajo kot vhodni in izhodni podatki. Nekatere funkcije na primer zahtevajo cela števila za nekatere argumente in datume za druge; Druge funkcije zahtevajo besedilo ali tabele.
Če podatki v stolpcu, ki ga določite kot argument, niso združljivi s podatkovnim tipom, ki ga zahteva funkcija, DAX v mnogih primerih vrne napako. Vendar pa bo DAX, kadar je to mogoče, poskušal implicitno pretvoriti podatke v zahtevani podatkovni tip. Primer:
- Datum lahko vnesete kot niz, DAX pa ga bo razčlenil in ga poskušal predvajati kot eno od oblik zapisa datuma in časa v sistemu Windows.
- Dodate lahko TRUE + 1 in dobite rezultat 2, ker je TRUE implicitno pretvorjena v številko 1 in se izvede operacija 1+1.
- Če seštejete vrednosti v dva stolpca in je ena vrednost predstavljena kot besedilo (»12«), druga pa kot število (12), DAX implicitno pretvori niz v število in nato doda številski rezultat. Naslednji izraz vrne 44: = »22« + 22
- Če poskusite združiti dve številki, ju bo Excel predstavil kot nize in nato združil. Naslednji izraz vrne »1234«: = 12 & 34
V spodnji tabeli so povzete implicitne pretvorbe podatkovnih tipov, ki se izvedejo v formulah. Excel izvaja implicitne pretvorbe, kadar je to mogoče, kot zahteva določena operacija.
Tabela implicitnih pretvorb podatkov
Vrsto pretvorbe, ki se izvede, določi operater, ki pred izvedbo zahtevane operacije odstrani vrednosti, ki jih potrebuje. V teh tabelah so navedeni operatorji in prikazana pretvorba, ki se izvede za vsak podatkovni tip v stolpcu, ko je seznanjen s podatkovnim tipom v vrstici, ki se seka.
Opomba
Besedilni podatkovni tipi niso vključeni v te tabele. Ko je število predstavljeno kot v obliki besedila, bo Power Pivot v nekaterih primerih poskušal določiti vrsto števila in ga predstaviti kot število.
Dodatek (+)
| Operater (+) | INTEGER | CURRENCY | REAL | Datum/čas |
|---|---|---|---|---|
| INTEGER | INTEGER | CURRENCY | REAL | Datum/čas |
| CURRENCY | CURRENCY | CURRENCY | REAL | Datum/čas |
| REAL | REAL | REAL | REAL | Datum/čas |
| Datum/čas | Datum/čas | Datum/čas | Datum/čas | Datum/čas |
Če je na primer realno število uporabljeno pri seštevanju v kombinaciji s podatki valute, se obe vrednosti pretvorita v REALNO in rezultat je REALEN.
Odštevanje (-)
V tej tabeli je glava vrstice minuend (leva stran), glava stolpca pa subtrahend (desna stran).
| Operator (-) | INTEGER | CURRENCY | REAL | Datum/čas |
|---|---|---|---|---|
| INTEGER | INTEGER | CURRENCY | REAL | REAL |
| CURRENCY | CURRENCY | CURRENCY | REAL | REAL |
| REAL | REAL | REAL | REAL | REAL |
| Datum/čas | Datum/čas | Datum/čas | Datum/čas | Datum/čas |
Če na primer uporabite datum v postopku odštevanja s katerim koli drugim podatkovnim tipom, sta obe vrednosti pretvorjeni v datume, vrnjena vrednost pa je tudi datum.
Opomba
Podatkovni modeli podpirajo tudi enolični operator - (negativen), vendar ta operator ne spremeni podatkovnega tipa operanda.
Množenje (*)
| Operator (*) | INTEGER | CURRENCY | REAL | Datum/čas |
|---|---|---|---|---|
| INTEGER | INTEGER | CURRENCY | REAL | INTEGER |
| CURRENCY | CURRENCY | REAL | CURRENCY | CURRENCY |
| REAL | REAL | CURRENCY | REAL | REAL |
Če pri množenju na primer združite celo število in realno število, se obe števili pretvorita v realni števili, vrnjena vrednost pa je tudi realna.
Delitev (/)
V naslednji tabeli je glava vrstice števec, glava stolpca pa imenovalec.
| Operator (/) (Vrstica/stolpec) |
INTEGER | CURRENCY | REAL | Datum/čas |
|---|---|---|---|---|
| INTEGER | REAL | CURRENCY | REAL | REAL |
| CURRENCY | CURRENCY | REAL | CURRENCY | REAL |
| REAL | REAL | REAL | REAL | REAL |
| Datum/čas | REAL | REAL | REAL | REAL |
Če na primer pri deljenju združite celo število z vrednostjo valute, se obe vrednosti pretvorita v realna števila, rezultat pa je tudi realno število.
Operatorji primerjave
V primerjalnih izrazih se logične vrednosti obravnavajo kot večje od vrednosti niza, vrednosti nizov pa večje od številskih vrednosti ali vrednosti datuma/časa; Števila in vrednosti datuma/ure imajo enak red. Za logične vrednosti ali vrednosti nizov se ne izvedejo implicitne pretvorbe. Vrednost BLANK ali prazna vrednost se pretvori v 0/""/false, odvisno od podatkovnega tipa druge primerjane vrednosti.
To delovanje ponazarjajo ti izrazi jezika DAX:
=IF(FALSE()>,"true","Izraz je resničen", "Izraz je neresničen"), vrne "Izraz je resničen"
=IF("12"12,>"Izraz je resničen", "Izraz je neresničen"), vrne "Izraz je resničen".
=IF("12"=12,"Izraz je resničen", "Izraz je neresničen"), vrne »Izraz je neresničen«
Pretvorbe se izvedejo implicitno za številske tipe ali vrste datum/čas, kot je opisano v tej tabeli:
| Operator primerjave | INTEGER | CURRENCY | REAL | Datum/čas |
|---|---|---|---|---|
| INTEGER | INTEGER | CURRENCY | REAL | REAL |
| CURRENCY | CURRENCY | CURRENCY | REAL | REAL |
| REAL | REAL | REAL | REAL | REAL |
| Datum/čas | REAL | REAL | REAL | Datum/čas |
Ravnanje s praznimi, praznimi nizi in ničelnimi vrednostmi
V jeziku DAX so ničelna, prazna vrednost, prazna celica ali manjkajoče vrednosti predstavljeni z isto novo vrsto vrednosti, tj. PRAZNO. Prazne celice lahko ustvarite tudi s funkcijo BLANK ali s funkcijo ISBLANK.
Način obravnave praznih vrednosti v operacijah, kot sta seštevanje ali združevanje, je odvisen od posamezne funkcije. V tej tabeli je povzetek razlik med formulami DAX in Microsoft Excel, in sicer glede na način obravnavanja praznih celic.
| Izraz | Formule DAX | Excel |
|---|---|---|
| BLANK + BLANK | PRAZNO | 0 (ničla) |
| PRAZNO +5 | 5 | 5 |
| PRAZNO * 5 | PRAZNO | 0 (ničla) |
| 5/PRAZNO | Neskončnost | Napaka |
| 0/PRAZNO | NaN | Napaka |
| PRAZNO/PRAZNO | PRAZNO | Napaka |
| FALSE ALI PRAZNO | FALSE | FALSE |
| FALSE IN BLANK | FALSE | FALSE |
| TRUE ALI BLANK | TRUE | TRUE |
| TRUE AND BLANK | FALSE | TRUE |
| PRAZNO ALI PRAZNO | PRAZNO | Napaka |
| PRAZNO IN PRAZNO | PRAZNO | Napaka |
Če želite podrobnosti o tem, kako določena funkcija ali operator obravnava prazne celice, glejte posamezne teme za posamezno funkcijo jezika DAX v razdelku » Sklic funkcije DAX«.