I en datamodell har hver kolonne en tilknyttet datatype som angir datatypen kolonnen kan inneholde: heltall, desimaltall, tekst, pengedata, datoer og klokkeslett og så videre. Datatype bestemmer også hvilke typer operasjoner du kan gjøre i kolonnen, og hvor mye minne det tar å lagre verdiene i kolonnen.
Hvis du bruker tillegget Power Pivot, kan du endre datatypen for en kolonne. Du må kanskje gjøre dette hvis en datokolonne ble importert som en streng, men du trenger den for å være noe annet. Hvis du vil ha mer informasjon, kan du se Angi datatypen for en kolonne i Power Pivot.
I denne artikkelen
Sammendrag av datatyper
Tabellen nedenfor viser datatyper som støttes i en datamodell. Når du importerer data eller bruker en verdi i en formel, selv om den opprinnelige datakilden inneholder en annen datatype, konverteres dataene til en av disse datatypene. Verdier som er resultatet av formler, bruker også disse datatypene.
Datatype i Excel |
Datatype i DAX |
Beskrivelse |
---|---|---|
Heltall |
En 64-biters (åttebyte) heltallsverdi 1, 2 |
Tall som ikke har desimaler. Heltall kan være positive eller negative tall, men må være heltall mellom -9 223 372 036 854 775 808 (-2^63) og 9 223 372 036 854 775 807 (2^63-1). |
Desimaltall |
Et 64-biters (åttebyte) reelt tall 1, 2 |
Reelle tall er tall som kan ha desimaler. Reelle tall dekker et bredt verdiområde: Negative verdier fra -1,79E +308 til -2,23E -308 Null Positive verdier fra 2,23E -308 til 1,79E + 308 Antall signifikante sifre er imidlertid begrenset til 15 desimaler. |
SANN/USANN |
Boolsk |
Enten en Sann- eller Usann-verdi. |
Tekst |
Streng |
En Unicode-tegndatastreng. Kan være strenger, tall eller datoer representert i et tekstformat. Maksimal strenglengde er 268 435 456 Unicode-tegn (256 megategn) eller 536 870 912 byte. |
Dato |
Dato/klokkeslett |
Datoer og klokkeslett i en godkjent dato/klokkeslett-fremstilling. Gyldige datoer er alle datoer etter 1. januar 1900. |
Valuta |
Valuta |
Valutadatatypen tillater verdier mellom -922 337 203 685 477,5808 til 922 337 203 685 477,5807 med fire desimaler med fast presisjon. |
I/T |
Tom |
En tom er en datatype i DAX som representerer og erstatter SQL nuller. Du kan opprette et tomt felt ved hjelp av TOM-funksjonen og teste for tomme celler ved hjelp av den logiske funksjonen ERTOM. |
1 DAX-formler støtter ikke datatyper som er mindre enn de som er oppført i tabellen.
2 Hvis du prøver å importere data som har svært store numeriske verdier, kan importen mislykkes med følgende feil:
Databasefeil i minnet: Kolonnen <kolonnenavn> i tabellen <-tabellnavn> inneholder en verdi, 1,7976931348623157e+308, som ikke støttes. Operasjonen er avbrutt.
Denne feilen oppstår fordi Power Pivot bruker denne verdien til å representere nullverdier. Verdiene i følgende liste er synonymer for nullverdien:
Value |
|
---|---|
9223372036854775807 |
|
-9223372036854775808 |
|
1,7976931348623158e+308 |
|
2,2250738585072014e-308 |
Fjern verdien fra dataene, og prøv å importere på nytt.
Tabelldatatype
DAX bruker en tabelldatatype i mange funksjoner, for eksempel aggregasjoner og beregninger av tidsintelligens. Noen funksjoner krever en referanse til en tabell. Andre funksjoner returnerer en tabell som deretter kan brukes som inndata til andre funksjoner. I noen funksjoner som krever en tabell som inndata, kan du angi et uttrykk som evalueres til en tabell. for enkelte funksjoner er det nødvendig med en referanse til en basistabell. Hvis du vil ha informasjon om kravene til bestemte funksjoner, kan du se DAX-funksjonsreferanse.
Implisitt og eksplisitt datatypekonvertering i DAX-formler
Hver DAX-funksjon har bestemte krav til datatypene som brukes som inndata og utdata. Noen funksjoner krever for eksempel heltall for noen argumenter og datoer for andre. andre funksjoner krever tekst eller tabeller.
Hvis dataene i kolonnen du angir som et argument, ikke er kompatible med datatypen som kreves av funksjonen, returnerer DAX i mange tilfeller en feil. Når det er mulig, vil DAX imidlertid prøve å implisitt konvertere dataene til den nødvendige datatypen. Eksempler:
-
Du kan skrive inn en dato som en streng, og DAX analyserer strengen og prøver å bruke den som et av Windows dato- og klokkeslettformatene.
-
Du kan legge til SANN + 1 og få resultatet 2, fordi SANN implisitt konverteres til tallet 1, og operasjonen 1+1 utføres.
-
Hvis du legger til verdier i to kolonner, og én verdi representeres som tekst ("12") og den andre som et tall (12), konverterer DAX implisitt strengen til et tall og gjør deretter tillegget for et numerisk resultat. Følgende uttrykk returnerer 44: = "22" + 22
-
Hvis du prøver å kjede sammen to tall, vil Excel vise dem som strenger og deretter kjede sammen. Følgende uttrykk returnerer "1234": = 12 & 34
Tabellen nedenfor oppsummerer de implisitte datatypekonverteringene som utføres i formler. Excel utfører implisitte konverteringer når det er mulig, som kreves av den angitte operasjonen.
Tabell over implisitte datakonverteringer
Typen konvertering som utføres, bestemmes av operatoren, som oppfører verdiene den krever før du utfører den forespurte operasjonen. Disse tabellene viser operatorene, og angir konverteringen som utføres på hver datatype i kolonnen når den er paret med datatypen i den kryssende raden.
Obs!: Tekstdatatyper er ikke inkludert i disse tabellene. Når et tall representeres som i et tekstformat, vil Power Pivot prøve å bestemme talltypen og representere den som et tall.
Addisjon (+)
Operator (+) |
INTEGER |
CURRENCY |
REAL |
Dato/klokkeslett |
---|---|---|---|---|
INTEGER |
INTEGER |
CURRENCY |
REAL |
Dato/klokkeslett |
CURRENCY |
CURRENCY |
CURRENCY |
REAL |
Dato/klokkeslett |
REAL |
REAL |
REAL |
REAL |
Dato/klokkeslett |
Dato/klokkeslett |
Dato/klokkeslett |
Dato/klokkeslett |
Dato/klokkeslett |
Dato/klokkeslett |
Hvis for eksempel et reelt tall brukes i en addisjonsoperasjon i kombinasjon med valutadata, konverteres begge verdiene til REAL, og resultatet returneres som REAL.
Subtraksjon (-)
I tabellen nedenfor er radoverskriften minuend (venstre side) og kolonneoverskriften er subtrahend (høyre side).
Operator (-) |
INTEGER |
CURRENCY |
REAL |
Dato/klokkeslett |
---|---|---|---|---|
INTEGER |
INTEGER |
CURRENCY |
REAL |
REAL |
CURRENCY |
CURRENCY |
CURRENCY |
REAL |
REAL |
REAL |
REAL |
REAL |
REAL |
REAL |
Dato/klokkeslett |
Dato/klokkeslett |
Dato/klokkeslett |
Dato/klokkeslett |
Dato/klokkeslett |
Hvis for eksempel en dato brukes i en subtraksjonsoperasjon med en annen datatype, konverteres begge verdiene til datoer, og returverdien er også en dato.
Obs!: Datamodeller støtter også den unære operatoren – (negativ), men denne operatoren endrer ikke datatypen for operanden.
Multiplikasjon (*)
Operator (*) |
INTEGER |
CURRENCY |
REAL |
Dato/klokkeslett |
---|---|---|---|---|
INTEGER |
INTEGER |
CURRENCY |
REAL |
INTEGER |
CURRENCY |
CURRENCY |
REAL |
CURRENCY |
CURRENCY |
REAL |
REAL |
CURRENCY |
REAL |
REAL |
Hvis for eksempel et heltall kombineres med et reelt tall i en multiplikasjonsoperasjon, konverteres begge tallene til reelle tall, og returverdien er også REAL.
Divisjon (/)
I tabellen nedenfor er radoverskriften telleren, og kolonneoverskriften er nevneren.
Operator (/) (Rad/kolonne) |
INTEGER |
CURRENCY |
REAL |
Dato/klokkeslett |
---|---|---|---|---|
INTEGER |
REAL |
CURRENCY |
REAL |
REAL |
CURRENCY |
CURRENCY |
REAL |
CURRENCY |
REAL |
REAL |
REAL |
REAL |
REAL |
REAL |
Dato/klokkeslett |
REAL |
REAL |
REAL |
REAL |
Hvis for eksempel et heltall kombineres med en valutaverdi i en divisjonsoperasjon, konverteres begge verdiene til reelle tall, og resultatet er også et reelt tall.
Sammenligningsoperatorer
I sammenligningsuttrykk regnes boolske verdier som større enn strengverdier, og strengverdier regnes som større enn numeriske verdier eller dato/klokkeslett-verdier. Tall- og dato-/klokkeslettverdier regnes for å ha samme rangering. Ingen implisitte konverteringer utføres for boolske verdier eller strengverdier. TOM eller en tom verdi konverteres til 0/""/usann, avhengig av datatypen til den andre sammenlignede verdien.
Følgende DAX-uttrykk illustrerer denne virkemåten:
=HVIS(USANN()>"sann","Uttrykk er sant", "Uttrykk er usant"), returnerer "Uttrykk er sant"
=HVIS("12">12,"Uttrykk er sant", "Uttrykk er usant"), returnerer "Uttrykk er sant".
=HVIS("12"=12,"Uttrykk er sant", "Uttrykk er usant"), returnerer "Uttrykk er usant"
Konverteringer utføres implisitt for numeriske eller dato-/klokkesletttyper som beskrevet i tabellen nedenfor:
Sammenligningsoperator |
INTEGER |
CURRENCY |
REAL |
Dato/klokkeslett |
---|---|---|---|---|
INTEGER |
INTEGER |
CURRENCY |
REAL |
REAL |
CURRENCY |
CURRENCY |
CURRENCY |
REAL |
REAL |
REAL |
REAL |
REAL |
REAL |
REAL |
Dato/klokkeslett |
REAL |
REAL |
REAL |
Dato/klokkeslett |
Håndtere tomme verdier, tomme strenger og nullverdier
I DAX representeres en nullverdi, tom verdi, tom celle eller en manglende verdi av samme nye verditype, en TOM. Du kan også generere tomme celler ved hjelp av TOM-funksjonen, eller teste for tomme celler ved hjelp av ERTOM-funksjonen.
Hvordan tomme celler håndteres i operasjoner, for eksempel addisjon eller sammenslåing, avhenger av den individuelle funksjonen. Tabellen nedenfor oppsummerer forskjellene mellom DAX og Microsoft Excel formler, i måten tomme celler håndteres på.
Uttrykk |
DAX |
Excel |
---|---|---|
TOM + TOM |
BLANK |
0 (null) |
BLANK +5 |
5 |
5 |
TOM * 5 |
BLANK |
0 (null) |
5/BLANK |
Uendelig |
Feil |
0/BLANK |
NaN |
Feil |
TOM/TOM |
BLANK |
Feil |
USANN ELLER TOM |
USANN |
USANN |
USANN OG TOM |
USANN |
USANN |
SANN ELLER TOM |
TRUE |
TRUE |
SANN OG TOM |
USANN |
SANN |
TOM ELLER TOM |
BLANK |
Feil |
TOM OG TOM |
BLANK |
Feil |
Hvis du vil ha mer informasjon om hvordan en bestemt funksjon eller operator håndterer tomme celler, kan du se de individuelle emnene for hver DAX-funksjon i delen DAX-funksjonsreferanse.