Datatyper i datamodeller

Gælder for
Excel til Microsoft 365 Excel 2024 Excel 2021 Excel 2019 Excel 2016

I en datamodel har hver kolonne en tilhørende datatype, der angiver, hvilken type data kolonnen kan indeholde: hele tal, decimaltal, tekst, monetære data, datoer og klokkeslæt osv. Datatypen afgør også, hvilke typer handlinger du kan udføre på kolonnen, og hvor meget hukommelse det kræver at gemme værdierne i kolonnen.

Hvis du bruger Power Pivot-tilføjelsesprogrammet, kan du ændre en kolonnes datatype. Det kan være nødvendigt at gøre dette, hvis en datokolonne blev importeret som en streng, men den skal være noget andet. Du kan finde flere oplysninger under Indstille 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, konverteres dataene til en af disse datatyper, selvom den oprindelige datakilde indeholder en anden datatype. Værdier, der er resultatet af formler, bruger også disse datatyper.

Datatype i Excel Datatype i DAX Beskrivelse
Heltal En 64 bit (otte byte) heltalsværdi 1, 2 Tal uden decimalpladser. 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 64 bit (otte byte) reelt tal 1, 2 Reelle tal er tal, der kan have decimalpladser. 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 1,79E + 308
Antallet af signifikante cifre er dog begrænset til 15 decimaler.
SAND/FALSK Boolesk værdi Enten en Sand eller Falsk værdi.
Tekst Streng En datastreng med et Unicode-tegn. Kan være strenge, tal eller datoer, der er repræsenteret i et tekstformat.
Maksimal 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 gengivelse 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 til 922.337.203.685.477,5807 med fire decimalcifre med fast præcision.
I/T Tomt En tom er en datatype i DAX, der repræsenterer og erstatter SQL null-værdier. Du kan oprette en tom celle ved hjælp af funktionen TOM og teste for tomme værdier ved hjælp af den logiske funktion ER.BLANK.

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 hukommelsesdatabase: Kolonnen "<kolonnenavn>" i tabellen "<tabelnavn>" indeholder en værdi, "1.7976931348623157e+308", som 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 dataene, og prøv at udføre importen igen.

Tabeldatatype

DAX anvender en tabeldatatype i mange funktioner, f.eks. sammenlægninger og tidsintelligente beregninger. 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 en reference til en basistabel. Du kan finde oplysninger om kravene til bestemte funktioner i funktionsreferencen for DAX.

Konvertering af implicitte og eksplicitte datatyper i DAX-formler

Hver DAX-funktion har specifikke krav til de typer data, 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. Hvor det er muligt, vil DAX dog forsøge implicit at konvertere dataene til den påkrævede datatype. Det kunne f.eks. være:

  • Du kan skrive en dato som en streng, hvorefter DAX fortolker strengen og forsøger at caste den som et af dato- og klokkeslætsformaterne i Windows.
  • Du kan tilføje SAND + 1 og få resultatet 2, fordi SAND implicit konverteres til tallet 1, og handlingen 1+1 udføres.
  • Hvis du adderer værdier i to kolonner, og den ene værdi repræsenteres som tekst ("12") og den anden som et tal (12), konverterer DAX implicit strengen til et tal og foretager derefter additionen for et numerisk resultat. Følgende udtryk returnerer 44: = "22" + 22
  • Hvis du forsøger at sammenkæde to tal, præsenteres de i Excel som strenge, og derefter sammenkædes. 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 krævet af den angivne handling.

Tabel over implicitte datakonverteringer

Typen af konvertering, der udføres, bestemmes af operatoren, som forkaster de krævede værdier, 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 den er parret med datatypen i rækken, der skærer hinanden.

Bemærk

Tekstdatatyper medtages ikke i disse tabeller. Når et tal repræsenteres som i et tekstformat, vil Power Pivot i visse tilfælde forsøge at bestemme 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 der f.eks. bruges et reelt tal 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 subtrahend (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 en dato f.eks. 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 uarme 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 f.eks. 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 f.eks. kombineres med en valutaværdi i en divisionshandling, konverteres 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 opfattes som større end numeriske værdier eller værdier for dato/klokkeslæt. 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","Udtrykket er sandt", "Udtrykket er falsk"), returnerer "Udtrykket er sandt"

=HVIS("12">12,"Udtrykket er sandt", "Udtrykket er falsk"), returnerer "Udtrykket er sandt".

=HVIS("12"=12,"Udtrykket er sandt", "Udtrykket er falsk"), returnerer "Udtrykket 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

Toppen af siden

Håndtering af tomme og tomme strenge og nulværdier

I DAX repræsenteres en null-værdi, en tom værdi, en tom celle eller en manglende værdi af den samme nye værditype, en TOM. Du kan også oprette tomme celler ved hjælp af funktionen TOM eller teste for tomme celler ved hjælp af funktionen ER.BLANK.

Hvordan tomme felter håndteres i handlinger, f.eks. addition eller sammenkædning, afhænger af den enkelte funktion. Følgende tabel opsummerer forskellene mellem DAX- og Microsoft Excel-formler på måden, som tomme felter håndteres på.

Udtryk DAX Excel
TOM + TOM TOM 0 (nul)
TOM +5 5 5
TOM * 5 TOM 0 (nul)
5/TOM Uendelig 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 felter, skal du se de enkelte emner for hver DAX-funktion i afsnittet DAX-funktionsreference.

Toppen af siden