Datatyper i datamodeller

I en datamodell har varje kolumn en relaterad datatyp som anger vilken typ av data som kan lagras i kolumnen: heltal, decimaltal, text, monetära data, datum och tider o.s.v. Datatypen avgör också vilka typer av åtgärder som du kan utföra med kolumnen, och hur mycket minne som behövs för att lagra värdena i kolumnen.

Om du använder Power Pivot-tilläggsprogrammet kan du ändra en kolumns datatyp. Du kan behöva göra det om en datumkolumn importerades som en sträng, men ska vara något annat. Mer information finns i Ange datatypen för en kolumn i Power Pivot.

Artikelinnehåll

Sammanfattning av datatyper

Tabelldatatyp

Implicit och explicit datatypskonvertering i DAX-formler

Tabell med implicita datakonverteringar

Addition (+)

Subtraktion (-)

Multiplikation (*)

Division (/)

Jämförelseoperatorer

Hantera blankvärden, tomma strängar och nollvärden

Sammanfattning av datatyper

Följande tabell innehåller de datatyper som stöds i en datamodell. När du importerar data eller använder ett värde i en formel konverteras data till någon av följande datatyper, även om den ursprungliga datakällan innehåller en annan datatyp. Värdena som formler resulterar i använder också dessa datatyper.

Datatyp i Excel

Datatyp i DAX

Beskrivning

Heltal

Ett 64-bitars (åtta-bytes) heltalsvärde 1, 2

Tal som inte har några decimaler. Heltal kan vara positiva eller negativa tal, men måste vara hela tal mellan -9 223 372 036 854 775 808 (-2^63) och 9 223 372 036 854 775 807 (2^63-1).

Decimaltal

Ett 64-bitars (åtta-bytes) realtal 1, 2

Realtal är tal som kan ha decimaler. Realtal innefattar en rad värden:

Negativa värden från -1,79E +308 till -2,23E -308

Noll

Positiva värden från 2,23E -308 till 1,79E +308

Antalet signifikanta siffror är dock begränsat till 15 decimalsiffror.

SANT/FALSKT

Boolesk

Antingen ett sant- eller falskt-värde.

Text

Sträng

En Unicode-teckendatasträng. Kan vara strängar, tal eller datum som anges i ett textformat.

Den högsta tillåtna stränglängden är 268 435 456 Unicode-tecken (256 mega tecken) eller 536 870 912 byte.

Datum

Datum/tid

Datum och tider i ett godkänt datum-/tidformat.

Giltiga datum är alla datum efter 1 januari 1900.

Valuta

Valuta

I datatypen valuta tillåts värden mellan -922 337 203 685 477,5808 och 922 337 203 685 477,5807 med fyra decimalsiffror med fast precision.

Tom

Ett blankvärde är en datatyp i DAX som representerar och ersätter nullvärden i SQL. Du skapar ett blankvärde med funktionen BLANK och söker efter blankvärden genom att använda den logiska funktionen ISBLANK.

1 DAX-formler har inte stöd för datatyper som är mindre än de som anges i tabellen.

2 Om du försöker importera data som har mycket höga numeriska värden kan importen misslyckas på grund av följande fel:

Fel i RAM-baserad databas: Kolumnen <kolumnnamn> i tabellen <tabellnamn> innehåller värdet 1.7976931348623157e+308 som inte stöds. Åtgärden har avbrutits.

Det här felet uppstår på grund av att värdet används för representation av nullvärden i Power Pivot. Värdena i följande lista är synonymer till nullvärdet:

Värde

9223372036854775807

-9223372036854775808

1,7976931348623158e+308

2,2250738585072014e-308

Ta bort värdet från dina data och försök importera igen.

Tabelldatatyp

I DAX används datatypen tabell i många funktioner, till exempel för beräkningar av aggregeringar och tidsinformation. Vissa funktioner kräver en referens till en tabell, medan andra funktioner returnerar en tabell som sedan kan användas som indata till andra funktioner. I vissa funktioner som kräver en tabell som indata, kan du ange ett uttryck som utvärderas till en tabell. För vissa funktioner krävs en referens till en bastabell. Information om kraven för specifika funktioner finns i Funktionsreferens för DAX.

Implicit och explicit datatypskonvertering i DAX-formler

Varje DAX-funktion har särskilda krav när det gäller vilka typer av data som används som indata och utdata. En del funktioner kräver till exempel heltal för vissa argument och datum för andra. Andra funktioner kräver text eller tabeller.

Om data i kolumnen som du anger som argument är inkompatibla med datatypen som krävs av funktionen, returneras i många fall ett fel. Där så är möjligt görs automatiska försök att implicit konvertera data till den datatyp som krävs. Exempel:

  • Du kan skriva ett datum som en sträng. Då parsas strängen och ett försök görs att typkonvertera den som något av datum- och tidsformaten i Windows.

  • Du kan lägga till TRUE + 1 och få resultatet 2, eftersom TRUE konverteras implicit till talet 1 och åtgärden 1+1 utförs.

  • Om du lägger till värden i två kolumner, och ett värde råkar visas som text ("12") och det andra som ett tal (12), konverteras strängen implicit till ett tal och sedan görs en addition av det numeriska resultatet. Följande uttryck returnerar 44: = "22" + 22.

  • Om du försöker sammanfoga två tal, presenteras de som strängar i Excel och sammanfogas sedan. Följande uttryck returnerar "1234": = 12 & 34

I tabellen nedan sammanfattas de implicita datatypskonverteringarna som utförs i formler. Excel utför implicita konverteringar när det är möjligt och om det krävs av den angivna åtgärden.

Tabell med implicita datakonverteringar

Vilken typ av konvertering som utförs bestäms av operatorn, som typkonverterar värdena som behövs innan önskad åtgärd utförs. I tabellerna nedan anges operatorerna, och vilken konvertering som utförs för respektive datatyp i kolumnen när den paras ihop med datatypen i korsande rad.

Obs!: Textdatatyper beskrivs inte i dessa tabeller. När ett tal representeras i ett textformat försöker Power Pivot i vissa fall att fastställa taltypen och representera det som ett tal.

Addition (+)

Operator (+)

HELTAL

VALUTA

REELLT

Datum/tid

HELTAL

HELTAL

VALUTA

REELLT

Datum/tid

VALUTA

VALUTA

VALUTA

REELLT

Datum/tid

REELLT

REAL

REAL

REELLT

Datum/tid

Datum/tid

Datum/tid

Datum/tid

Datum/tid

Datum/tid

Om till exempel ett realtal används vid addition i kombination med valutadata konverteras båda värdena till REAL, och resultatet returneras som REAL.

Subtraktion (-)

I tabellen nedan är radrubriken minuenden (vänster sida) och kolumnrubriken är subtrahenden (höger sida).

Operator (-)

HELTAL

VALUTA

REELLT

Datum/tid

HELTAL

HELTAL

VALUTA

REELLT

REELLT

VALUTA

VALUTA

VALUTA

REELLT

REAL

REAL

REAL

REAL

REAL

REELLT

Datum/tid

Datum/tid

Datum/tid

Datum/tid

Datum/tid

Om till exempel ett datum används vid subtraktion med någon annan datatyp, konverteras båda värdena till datum, och returvärdet blir också ett datum.

Obs!: Datamodeller har också stöd för den unära operatorn, - (negativ), men den här operatorn ändrar inte datatypen på operanden.

Multiplikation (*)

Operator (*)

HELTAL

VALUTA

REELLT

Datum/tid

HELTAL

HELTAL

VALUTA

REELLT

HELTAL

VALUTA

VALUTA

REELLT

VALUTA

VALUTA

REELLT

REELLT

VALUTA

REELLT

REELLT

Om till exempel ett heltal kombineras med ett realtal vid multiplikation konverteras båda talen till realtal, och returvärdet blir också REAL.

Division (/)

I tabellen nedan är radrubriken täljaren och kolumnrubriken är nämnaren.

Operator (/)

(Rad/kolumn)

HELTAL

VALUTA

REELLT

Datum/tid

HELTAL

REELLT

VALUTA

REELLT

REELLT

VALUTA

VALUTA

REELLT

VALUTA

REELLT

REAL

REAL

REAL

REAL

REELLT

Datum/tid

REELLT

REAL

REAL

REELLT

Om till exempel ett heltal kombineras med ett valutavärde vid division konverteras båda värdena till realtal, och resultatet blir också ett realtal.

Jämförelseoperatorer

I jämförelseuttryck anses booleska värden vara större än strängvärden och strängvärden anses vara större än numeriska värden eller datum-/tidsvärden. Tal och datum-/tidsvärden anses vara på samma nivå. Inga implicita konverteringar utförs för booleska värden eller strängvärden. BLANK eller ett blankvärde konverteras till 0/""/false beroende på vilken datatyp den andra jämförda värdet är av.

I DAX-uttrycken nedan illustreras det här beteendet:

=OM(FALSKT()>"sant","Uttrycket är sant", "Uttrycket är falskt") ger resultatet "Uttrycket är sant"

=OM("12">12,"Uttrycket är sant", "Uttrycket är falskt") ger resultatet "Uttrycket är sant"

=OM("12"=12,"Uttrycket är sant", "Uttrycket är falskt") ger resultatet "Uttrycket är falskt"

Konvertering utförs implicit för numeriska typer eller datum-/tidstyper enligt tabellen nedan:

Jämförelseoperator

HELTAL

VALUTA

REELLT

Datum/tid

HELTAL

HELTAL

VALUTA

REELLT

REELLT

VALUTA

VALUTA

VALUTA

REELLT

REAL

REAL

REAL

REAL

REAL

REELLT

Datum/tid

REELLT

REAL

REELLT

Datum/tid

Överst på sidan

Hantera blankvärden, tomma strängar och nollvärden

I DAX representeras ett null-värde, ett blankvärde, en tom cell eller ett värde som saknas av samma nya värdetyp, BLANK. Du kan också skapa blankvärden genom att använda funktionen BLANK, eller söka efter blankvärden med funktionen ISBLANK.

Hur blankvärden hanteras i åtgärder som addition och sammanfogning beror på den enskilda funktionen. I tabellen nedan sammanfattas skillnaderna mellan hur blankvärden hanteras i DAX-formler och i Microsoft Excel-formler.

Uttryck

DAX

Excel

BLANK + BLANK

BLANK

0 (noll)

BLANK +5

5

5

BLANK * 5

BLANK

0 (noll)

5/BLANK

Oändligt

Fel

0/BLANK

NaN

Fel

BLANK/BLANK

BLANK

Fel

FALSE ELLER BLANK

FALSKT

FALSKT

FALSE OCH BLANK

FALSKT

FALSKT

TRUE ELLER BLANK

SANT

SANT

TRUE OCH BLANK

FALSKT

SANT

BLANK ELLER BLANK

BLANK

Fel

BLANK OCH BLANK

BLANK

Fel

Mer information om hur en viss funktion eller operator hanterar blankvärden finns i avsnitten om respektive DAX-funktion i Funktionsreferens för DAX.

Överst på sidan

Utöka dina kunskaper
Utforska utbildning
Få nya funktioner först
Anslut till Office Insiders

Hade du nytta av den här informationen?

Tack för din feedback!

Tack för din feedback! Det låter som att det kan vara bra att koppla dig till en av våra Office-supportrepresentanter.

×