I en datamodel har hver kolonne en tilknyttet datatype, der angiver, hvilken type data kolonnen kan indeholde: hele tal, decimaltal, tekst, monetære data, datoer og klokkeslæt osv. Datatypen bestemmer også, hvilke typer handlinger du kan udføre på kolonnen, og hvor meget hukommelse det tager at gemme værdierne i kolonnen.
Hvis du bruger tilføjelsesprogrammet Power Pivot , kan du ændre datatypen for en kolonne. Det kan være nødvendigt at gøre dette, hvis en datokolonne blev importeret som en streng, men du har brug for, at den er noget andet. Få mere at vide under Angiv datatypen for en kolonne i Power Pivot.
Denne artikel indeholder
Oversigt over datatyper
I følgende tabel vises datatyper, der understøttes i en datamodel. Når du importerer data eller bruger en værdi i en formel, selvom den oprindelige datakilde indeholder en anden datatype, konverteres dataene til en af disse datatyper. Værdier, der er resultatet af formler, bruger også disse datatyper.
Datatype i Excel |
Datatype i DAX |
Beskrivelse |
---|---|---|
Helt tal |
Et heltal på 64 bit (otte byte) 1, 2 |
Tal, der ikke har decimaler. Heltal kan være positive eller negative tal, men skal være hele tal mellem -9,223.372.036.854.775.808 (-2^63) og 9.223.372.036.854.775.807 (2^63-1). |
Decimaltal |
Et reelt tal på 64 bit (otte byte), 1, 2 |
Reelle tal er tal, der kan have decimaler. Reelle tal dækker en lang række værdier: Negative værdier fra -1,79E +308 til -2,23E -308 Nul Positive værdier fra 2,23E -308 til og med 1,79E + 308 Antallet af signifikante cifre er dog begrænset til 15 decimaler. |
SAND/FALSK |
Boolesk værdi |
Værdien Sand eller Falsk. |
Tekst |
Streng |
En Unicode-tegndatastreng. Kan være strenge, tal eller datoer, der er repræsenteret i et tekstformat. Den maksimale strenglængde er 268.435.456 Unicode-tegn (256 megategn) eller 536.870.912 byte. |
Dato |
Dato/klokkeslæt |
Datoer og klokkeslæt i en accepteret repræsentation af dato og klokkeslæt. Gyldige datoer er alle datoer efter 1. januar 1900. |
Valuta |
Valuta |
Datatypen Valuta tillader værdier mellem -922.337.203.685.477,5808 og 922.337.203.685.477,5807 med fire decimaler med fast præcision. |
I/T |
Tomt |
En tom datatype er en datatype i DAX, der repræsenterer og SQL null-værdier. Du kan oprette et blanktegn ved hjælp af funktionen TOM og teste for tomme ved hjælp af den logiske funktion ER.TOM. |
1 DAX-formler understøtter ikke datatyper, der er mindre end dem, der er angivet i tabellen.
2 Hvis du forsøger at importere data med meget store numeriske værdier, kan importen mislykkes med følgende fejl:
Fejl i databasen i hukommelsen: Kolonnen "<kolonnenavn>" i tabellen "<-tabelnavn>" indeholder en værdi, '1,7976931348623157e+308", hvilket ikke understøttes. Handlingen er annulleret.
Denne fejl opstår, fordi Power Pivot bruger denne værdi til at repræsentere null-værdier. Værdierne på følgende liste er synonymer for null-værdien:
Værdi |
|
---|---|
9223372036854775807 |
|
-9223372036854775808 |
|
1,7976931348623158e+308 |
|
2,2250738585072014e-308 |
Fjern værdien fra dine data, og prøv at importere igen.
Datatypen Tabel
DAX bruger en tabeldatatype i mange funktioner, f.eks. sammenlægninger og beregninger af tidsintelligens. Nogle funktioner kræver en reference til en tabel. Andre funktioner returnerer en tabel, der derefter kan bruges som input til andre funktioner. I nogle funktioner, der kræver en tabel som input, kan du angive et udtryk, der evalueres til en tabel. For nogle funktioner kræves der en reference til en basistabel. Du kan finde oplysninger om kravene til bestemte funktioner i DaX-funktionsreferencen.
Implicit og eksplicit datatypekonvertering i DAX-formler
Hver DAX-funktion har specifikke krav med hensyn til de datatyper, der bruges som input og output. Nogle funktioner kræver f.eks. heltal for nogle argumenter og datoer for andre. Andre funktioner kræver tekst eller tabeller.
Hvis dataene i den kolonne, du angiver som argument, ikke er kompatible med den datatype, der kræves af funktionen, vil DAX i mange tilfælde returnere en fejl. Men hvor det er muligt, vil DAX forsøge at konvertere dataene implicit til den påkrævede datatype. Eksempler:
-
Du kan skrive en dato som en streng, og DAX fortolker strengen og forsøger at kaste den som et af Windows og klokkeslætsformater.
-
Du kan tilføje SAND + 1 og få resultatet 2, da SAND implicit konverteres til tallet 1, og handlingen 1+1 udføres.
-
Hvis du tilføjer værdier i to kolonner, og én værdi repræsenteres som tekst ("12") og den anden som et tal (12), konverterer DAX implicit strengen til et tal og konverterer derefter tilføjelsen for et numerisk resultat. Følgende udtryk returnerer 44: = "22" + 22
-
Hvis du forsøger at sammenkæde to tal, viser Excel dem som strenge og sammenkæder derefter. Følgende udtryk returnerer "1234": = 12 & 34
Følgende tabel opsummerer de implicitte datatypekonverteringer, der udføres i formler. Excel udfører implicitte konverteringer, når det er muligt, som påkrævet af den angivne handling.
Tabel over implicitte datakonverteringer
Den type konvertering, der udføres, bestemmes af operatoren, der viser de værdier, der kræves, før den ønskede handling udføres. Disse tabeller viser operatorerne og angiver den konvertering, der udføres på hver datatype i kolonnen, når de parres med datatypen i den krydsende række.
Bemærk!: Tekstdatatyper medtages ikke i disse tabeller. Når et tal er repræsenteret i et tekstformat, vil Power Pivot i nogle tilfælde forsøge at fastslå taltypen og repræsentere det som et tal.
Addition (+)
Operator (+) |
HELTAL |
CURRENCY |
REEL |
Dato/klokkeslæt |
---|---|---|---|---|
HELTAL |
HELTAL |
CURRENCY |
REEL |
Dato/klokkeslæt |
CURRENCY |
CURRENCY |
CURRENCY |
REEL |
Dato/klokkeslæt |
REEL |
REEL |
REEL |
REEL |
Dato/klokkeslæt |
Dato/klokkeslæt |
Dato/klokkeslæt |
Dato/klokkeslæt |
Dato/klokkeslæt |
Dato/klokkeslæt |
Hvis f.eks. et reelt tal bruges i en additionshandling sammen med valutadata, konverteres begge værdier til REEL, og resultatet returneres som REEL.
Subtraktion (-)
I følgende tabel er rækkeoverskriften minuend (venstre side), og kolonneoverskriften er understreget (højre side).
Operator (-) |
HELTAL |
CURRENCY |
REEL |
Dato/klokkeslæt |
---|---|---|---|---|
HELTAL |
HELTAL |
CURRENCY |
REEL |
REEL |
CURRENCY |
CURRENCY |
CURRENCY |
REEL |
REEL |
REEL |
REEL |
REEL |
REEL |
REEL |
Dato/klokkeslæt |
Dato/klokkeslæt |
Dato/klokkeslæt |
Dato/klokkeslæt |
Dato/klokkeslæt |
Hvis f.eks. en dato bruges i en subtraktionshandling med en anden datatype, konverteres begge værdier til datoer, og returværdien er også en dato.
Bemærk!: Datamodeller understøtter også den unær operator , - (negativ), men denne operator ændrer ikke datatypen for operanden.
Multiplikation (*)
Operator (*) |
HELTAL |
CURRENCY |
REEL |
Dato/klokkeslæt |
---|---|---|---|---|
HELTAL |
HELTAL |
CURRENCY |
REEL |
HELTAL |
CURRENCY |
CURRENCY |
REEL |
CURRENCY |
CURRENCY |
REEL |
REEL |
CURRENCY |
REEL |
REEL |
Hvis et heltal kombineres med et reelt tal i en multiplikationshandling, konverteres begge tal til reelle tal, og returværdien er også REEL.
Division (/)
I følgende tabel er rækkeoverskriften tælleren, og kolonneoverskriften er nævneren.
Operator (/) (Række/kolonne) |
HELTAL |
CURRENCY |
REEL |
Dato/klokkeslæt |
---|---|---|---|---|
HELTAL |
REEL |
CURRENCY |
REEL |
REEL |
CURRENCY |
CURRENCY |
REEL |
CURRENCY |
REEL |
REEL |
REEL |
REEL |
REEL |
REEL |
Dato/klokkeslæt |
REEL |
REEL |
REEL |
REEL |
Hvis et heltal kombineres med en valutaværdi i en division, omregnes begge værdier til reelle tal, og resultatet er også et reelt tal.
Sammenligningsoperatorer
I sammenligningsudtryk betragtes booleske værdier som større end strengværdier, og strengværdier anses for at være større end numeriske værdier eller dato/klokkeslæt-værdier. Tal og værdier for dato/klokkeslæt anses for at have samme rang. Der udføres ingen implicitte konverteringer for booleske værdier eller strengværdier. TOM eller en tom værdi konverteres til 0/""/falsk afhængigt af datatypen for den anden sammenlignede værdi.
Følgende DAX-udtryk illustrerer denne funktionsmåde:
=HVIS(FALSK()>"sand","Udtryk er sand", "Udtryk er falsk"), returnerer "Udtryk er sandt"
=HVIS("12">12,"Udtryk er sand", "Udtryk er falsk"), returnerer "Udtryk er sandt".
=HVIS("12"=12,"Udtrykket er sandt", "Udtrykket er falsk"), returnerer "Udtryk er falsk"
Konverteringer udføres implicit for numeriske typer eller dato/klokkeslætstyper som beskrevet i følgende tabel:
Sammenligningsoperator |
HELTAL |
CURRENCY |
REEL |
Dato/klokkeslæt |
---|---|---|---|---|
HELTAL |
HELTAL |
CURRENCY |
REEL |
REEL |
CURRENCY |
CURRENCY |
CURRENCY |
REEL |
REEL |
REEL |
REEL |
REEL |
REEL |
REEL |
Dato/klokkeslæt |
REEL |
REEL |
REEL |
Dato/klokkeslæt |
Håndtering af tomme, tomme strenge og nulværdier
I DAX repræsenteres en Null-, tom værdi, tom celle eller en manglende værdi af den samme nye værditype, en TOM. Du kan også generere tomme celler ved hjælp af funktionen TOM, eller du kan teste for tomme værdier ved hjælp af funktionen ER.TOM.
Hvordan tomme celler håndteres i handlinger, f.eks. addition eller sammenklikning, afhænger af den enkelte funktion. Følgende tabel opsummerer forskellene mellem DAX- Microsoft Excel formler på samme måde, som tomme celler håndteres.
Udtryk |
DAX |
Excel |
---|---|---|
TOM+TOM |
TOM |
0 (nul) |
TOM +5 |
5 |
5 |
TOM * 5 |
TOM |
0 (nul) |
5/TOM |
Uendeligt |
Fejl |
0/TOM |
NaN |
Fejl |
TOM/TOM |
TOM |
Fejl |
FALSK ELLER TOM |
FALSK |
FALSK |
FALSK OG TOM |
FALSK |
FALSK |
SAND ELLER TOM |
TRUE |
TRUE |
SAND OG TOM |
FALSK |
SAND |
TOM ELLER TOM |
TOM |
Fejl |
TOM OG TOM |
TOM |
Fejl |
Hvis du vil have mere at vide om, hvordan en bestemt funktion eller operator håndterer tomme celler, skal du se de enkelte emner for hver DAX-funktion i sektionen DaX-funktionsreference.