V podatkovnem modelu ima vsak stolpec povezan podatkovni tip, ki določa vrsto podatkov, ki jih lahko stolpec vsebuje: cela števila, decimalna števila, besedilo, denarni podatki, datumi in ure itd. Vrsta podatkov določa tudi, katere vrste operacij lahko izvajate v stolpcu in koliko pomnilnika je potrebnega za shranjevanje vrednosti v stolpcu.
Če uporabljate dodatek Power Pivot, lahko spremenite podatkovni tip stolpca. To boste morda morali narediti, če je bil stolpec z datumi uvožen kot niz, vendar potrebujete 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 podatkovni vir vsebuje drugačno vrsto podatkov. Te vrste podatkov uporabljajo tudi vrednosti, ki nastanejo iz formul.
| Vrsta podatkov v Excelu | Vrsta podatkov v jeziku DAX | Opis |
|---|---|---|
| Celo število | 64-bitno (osembajtno) vrednost celega števila 1, 2 | Števila brez decimalnih mest. Celo število je lahko pozitivno ali negativno, vendar mora biti celo število med -9.223.372.036.854.775.808 (-2^63) in 9.223.372.036.854.775.807 (2^63-1). |
| Decimalno število | 64-bitno (osembajtno) realno število 1, 2 | Realna števila so števila, ki imajo lahko decimalna mesta. Realna števila pokrivajo širok nabor vrednosti: Negativne vrednosti od -1,79E +308 do -2,23E -308 Nič Pozitivne vrednosti od 2.23E-308 do 1.79E + 308 Vendar je število pomembnih števk omejeno na 15 decimalnih mest. |
| RESNIČNO/NAPAČNO | Logičen | Vrednost »True« ali »False«. |
| Text (Besedilo) | String | Podatkovni niz znaka 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 časi v sprejeti predstavitvi datuma in časa. Vsi veljavni datumi so vsi datumi po 1. januarju 1900. |
| Valuta | Valuta | Podatkovni tip »Valuta« dovoljuje vrednosti med -922.337.203.685.477.5808 in 922.337.203.685.477.5807 s štirimi decimalnimi števkami nespremenljive natančnosti. |
| Ni na voljo | Prazno | Prazno je podatkovni tip v jeziku DAX, ki predstavlja in zamenja vrednosti »SQL null«. Prazno polje lahko ustvarite s funkcijo BLANK, preverite pa prazne celice z logično funkcijo ISBLANK. |
1 Formule 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 uspe in prikaže se ta napaka:
Napaka zbirke podatkov v pomnilniku: stolpec »<Ime> stolpca« tabele »<Ime> tabele« vsebuje vrednost »1.7976931348623157e+308«, ki ni podprta. Postopek je preklican.
Do te napake pride, ker Power Pivot uporabi to vrednost za predstavitev ničelnih vrednosti. Vrednosti na tem seznamu so sopomenke za ničelno vrednost:
| Value (Vrednost) |
|---|
| 9223372036854775807 |
| -9223372036854775808 |
| 1,7976931348623158e+308 |
| 2.2250738585072014e-308 |
Odstranite vrednost iz podatkov in poskusite uvoziti znova.
Podatkovni tip tabele
DAX uporablja podatkovni tip tabele v številnih funkcijah, kot so združevanja in izračuni s podatki o času. Nekatere funkcije zahtevajo sklic na tabelo; Druge funkcije vrnejo tabelo, ki jo je mogoče uporabiti kot vhod za druge funkcije. V nekaterih funkcijah, ki za vnos zahtevajo tabelo, lahko določite izraz, ki ovrednoti tabelo. Za nekatere funkcije je zahtevan sklic na osnovno tabelo. Če želite informacije o zahtevah določenih funkcij, glejte Sklic funkcije jezika DAX.
Implicitna in eksplicitna pretvorba podatkovnega tipa v formulah jezika DAX
Vsaka funkcija DAX ima določene zahteve glede vrst podatkov, ki so uporabljeni kot vhodi in izhodi. Nekatere funkcije na primer zahtevajo cela števila za nekatere argumente in datume za druge; Za druge funkcije potrebujete besedilo ali tabele.
Če podatki v stolpcu, ki ga določite kot argument, niso združljivi z vrsto podatkov, ki jo zahteva funkcija, DAX v mnogih primerih vrne napako. Kjer pa bo mogoče DAX poskusil implicitno pretvoriti podatke v zahtevano vrsto podatkov. Primer:
- Datum lahko vnesete kot niz, DAX pa ga bo razčlenil in ga poskušal prenesti v eno od oblik zapisa datuma in ure v sistemu Windows.
- Lahko dodate TRUE + 1 in dobite rezultat 2, saj je vrednost TRUE implicitno pretvorjena v število 1 in se izvede operacija 1 + 1.
- Če seštejete vrednosti v dveh stolpcih in je ena vrednost predstavljena kot besedilo (»12«), druga pa kot število (12), DAX implicitno pretvori niz v številko in nato sešteje številski rezultat. Ta izraz vrne 44: = "22" + 22
- Če poskusite spojiti dve števili, ju Excel predstavi kot niz in nato združi. Ta izraz vrne »1234«: = 12 & 34
V tej tabeli je povzetek implicitnih pretvorb podatkovnih tipov, ki se izvedejo v formulah. Excel izvaja implicitne pretvorbe, kadar koli je to mogoče, kot to zahteva določena operacija.
Tabela implicitnih pretvorb podatkov
Vrsto izvedene pretvorbe določa operator, ki preleže vrednosti, ki jih potrebuje, preden izvede zahtevano operacijo. V teh tabelah so navedeni operatorji in označene pretvorbe, ki se izvedejo za vsak podatkovni tip v stolpcu, ko je seznanjen s podatkovnim tipom v križajoči vrstici.
Opomba
Besedilni podatkovni tipi niso vključeni v te tabele. Če je število predstavljeno kot v obliki besedila, bo dodatek Power Pivot v nekaterih primerih poskušal določiti vrsto števila in ga predstaviti kot število.
Seštevanje (+)
| Operator (+) | 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«.