Datatyper i Power BI DesktopData types in Power BI Desktop

Den här artikeln beskriver datatyper som stöds i Power BI Desktop och dataanalysuttryck (DAX).This article describes data types supported in Power BI Desktop and Data Analysis Expressions (DAX).

När du läser in data i Power BI Desktop försöker den konvertera datatypen för källkolumnen till en datatyp som ger bättre stöd för effektivare lagring, beräkningar och datavisualisering.When you load data into Power BI Desktop, it will attempt to convert the data type of the source column into a data type that better supports more efficient storage, calculations, and data visualization. Om till exempel en kolumn med värden som du importerar från Excel saknar bråkvärden, konverterar Power BI Desktop hela datakolumnen till datatypen Heltal som passar bättre vid lagring.For example, if a column of values you import from Excel has no fractional values, Power BI Desktop will convert the entire column of data to a Whole Number data type, which is better suited for storing integers.

Det här konceptet är viktigt eftersom vissa DAX-funktioner har särskilda datatypskrav.This concept is important because some DAX functions have special data type requirements. I många fall kommer DAX konvertera datatypen åt dig, men det finns tillfällen där det inte görs.While in many cases DAX will implicitly convert a data type for you, there are some cases where it will not. Om till exempel en DAX-funktion kräver datatypen Datum och datatypen för kolumnen är Text, fungerar DAX-funktionen inte korrekt.For instance, if a DAX function requires a Date data type and the data type for your column is Text, the DAX function will not work correctly. Det är därför både viktigt och användbart att få rätt datatyp för en kolumn.So, it’s both important and useful to get the correct data type for a column. Implicita konverteringar beskrivs senare i den här artikeln.Implicit conversions are described later in this article.

Bestämma och ange datatyp för en kolumnDetermine and specify a column’s data type

I Power BI Desktop kan du fastställa och ange datatyp för en kolumn i frågeredigeraren, i datavyn eller rapportvyn:In Power BI Desktop, you can determine and specify a column’s data type in the Query Editor, or in Data View or Report View:

Datatyper i frågeredigerarenData types in Query Editor

Skärmbild av menyfliksområdet Datatyp i Frågeredigeraren.

Datatyper i datavyn eller rapportvynData types in Data View or Report View

Skärmbild av menyfliksområdet Datatyp i datavyn.

Listrutan Datatyp i frågeredigeraren har två datatyper som för närvarande inte finns i datavyn eller rapportvyn: Datum/tid/tidszon och Varaktighet.The Data Type drop down in Query Editor has two data types not currently present in Data or Report View: Date/Time/Timezone and Duration. När en kolumn med dessa datatyper läses in i modellen och visas i datavyn eller rapportvyn, kommer en kolumn med datatypen Datum/tid/tidszon att konverteras till Datum/tid och en kolumn med datatypen Varaktighet kommer att konverteras till ett decimaltal.When a column with these data types is loaded into the model and viewed in Data or Report view, a column with a Date/Time/Timezone data type will be converted into a Date/Time, and a column with a Duration data type is converted into a Decimal Number.

Datatypen Binär stöds för närvarande inte utanför Frågeredigeraren.The Binary data type is not currently supported outside of the Query Editor. I Frågeredigeraren kan du använda den när du läser in binära filer om du konverterar den till andra datatyper innan du läser in den till Power BI-modellen.Inside the Query Editor you can use it when loading binary files if you convert it to other data types before loading it to the Power BI model. Den finns på menyn Datavy och Rapportvy på grund av äldre anledningar, men om du försöker läsa in binära kolumner till Power BI-modellen kan du stöta på fel.It exists in the Data View and Report View menus for legacy reasons but if you try to load binary columns to the Power BI model you may run into errors.

NummertyperNumber types

Power BI Desktop stöder tre typer av nummer:Power BI Desktop supports three number types:

Decimaltal – Visar ett 64-bitars (8 byte) flyttalsnummer.Decimal Number – Represents a 64 bit (eight-byte) floating point number. Det är den vanligaste nummertypen och motsvarar tal som du vanligtvis ser dem.It’s the most common number type and corresponds to numbers as you usually think of them. Även om den är utformad att hantera tal med bråkvärden, hanterar den också heltal.Although designed to handle numbers with fractional values, it also handles whole numbers. Typen Decimaltal kan hantera negativa värden från -1,79E +308 till -2,23E -308, 0 och positiva värden från 2,23E -308 till 1,79E + 308.The Decimal Number type can handle negative values from -1.79E +308 through -2.23E -308, 0, and positive values from 2.23E -308 through 1.79E + 308. Till exempel är siffror som 34, 34,01 och 34,000367063 giltiga decimaltal.For example, numbers like 34, 34.01, and 34.000367063 are valid decimal numbers. Den största precisionen som kan representeras som decimaltal är 15 siffror långt.The largest precision that can be represented in a Decimal Number type is 15 digits long. Decimaltecknet kan finnas var som helst i talet.The decimal separator can occur anywhere in the number. Typen Decimaltal motsvarar hur Excel lagrar dessa tal.The Decimal Number type corresponds to how Excel stores its numbers.

Fast decimaltal – Har en fast plats för decimaltecknet.Fixed Decimal Number – Has a fixed location for the decimal separator. Decimaltecknet har alltid fyra siffror till höger och upp till 19 signifikanta siffror.The decimal separator always has four digits to its right and allows for 19 digits of significance. Det största värdet som kan visas är 922 337 203 685 477,5807 (positivt eller negativt).The largest value it can represent is 922,337,203,685,477.5807 (positive or negative). Typen Fast decimaltal är användbar när avrundning kan leda till fel.The Fixed Decimal Number type is useful in cases where rounding might introduce errors. När du arbetar med många tal som har små bråkvärden kan de ibland ackumuleras och få fram ett tal som inte riktigt stämmer.When you work with many numbers that have small fractional values, they can sometimes accumulate and force a number to be slightly off. Eftersom värden efter fyra siffrorna till höger om decimaltecknet trunkeras, kan du med typen Fast decimaltal undvika dessa typer av fel.Since the values past the four digits to the right of decimal separator are truncated, the Fixed Decimal type can help you avoid these kinds of errors. Om du är bekant med SQL Server motsvarar datatypen SQL Servers decimal (19,4) eller valutadatatypen i Power Pivot.If you’re familiar with SQL Server, this data type corresponds to SQL Server’s Decimal (19,4), or the Currency Data type in Power Pivot.

Heltal – Visar ett värde som 64-bitars heltal (8 byte).Whole Number – Represents a 64 bit (eight-byte) integer value. Eftersom det är ett heltal finns det inga siffror till höger om decimaltecknet.Because it’s an integer, it has no digits to the right of the decimal place. Det kan innehålla 19 siffror, positiva eller negativa heltal mellan -9 223 372 036 854 775 807 (-2^63+1) och 9 223 372 036 854 775 806 (2^63-2).It allows for 19 digits; positive or negative whole numbers between -9,223,372,036,854,775,807 (-2^63+1) and 9,223,372,036,854,775,806 (2^63-2). Det kan representera den största möjliga precisionen för de olika numeriska datatyperna.It can represent the largest possible precision of the various numeric data types. Precis som med Fast decimaltyp kan typen Heltal vara användbar i fall där du behöver styra avrundningen.As with the Fixed Decimal type, the Whole Number type can be useful in cases where you need to control rounding.

Anteckning

Power BI Desktop-datamodellen har stöd för 64-bitars heltalsvärden, men det största talet som de visuella objekten säkert kan uttrycka är 9,007,199,254,740,991 (2^53-1), på grund av JavaScript-begränsningar.The Power BI Desktop data model supports 64 bit integer values, but the largest number the visuals can safely express is 9,007,199,254,740,991 (2^53-1) due to JavaScript limitations. Om du arbetar med tal i datamodellen ovan kan du minska storleken genom beräkningar innan du lägger till dem i ett visuellt objektIf you work with numbers in your data model above this, you can reduce the size through calculations before adding them to a visual

Datum/tid-typerDate/time types

Power BI Desktop har stöd för fem datum/tid-datatyper i frågevyn.Power BI Desktop supports five Date/Time data types in Query View. Både datum/tid/tidszon och Varaktighet konverteras vid inläsningen till modellen.Both Date/Time/Timezone and Duration are converted during load into the model. Datamodellen i Power BI Desktop har endast stöd för datum/tid, men de kan formateras som datum och tid oberoende av varandra.The Power BI Desktop data model only supports date/time, but they can be formatted as dates or times independently.

Datum/tid – Visar både ett datum- och ett tidsvärde.Date/Time – Represents both a date and time value. Datum/tidsvärdet lagras som typen Decimaltal.Underneath the covers, the Date/Time value is stored as a Decimal Number Type. Så du kan faktiskt konvertera mellan de två.So you can actually convert between the two. Tidsdelen i ett datum lagras som ett bråkvärde till hela multiplar av 1/300 sekunder (3,33 ms).The time portion of a date is stored as a fraction to whole multiples of 1/300 seconds (3.33 ms). Datum mellan åren 1900 och 9999 stöds.Dates between years 1900 and 9999 are supported.

Datum – Visar bara ett datum (ingen tidsdel).Date – Represents just a Date (no time portion). När datumet konverteras till modellen är det samma som ett datum/tid-värde med noll för bråkvärdet.When converted into the model, a Date is the same as a Date/Time value with zero for the fractional value.

Tid – Visar bara tid (ingen datumdel).Time – Represents just Time (no Date portion). När tidsvärdet konverteras till modellen är det samma som ett datum/tid-värde utan några siffror till vänster om decimaltecknet.When converted into the model, a Time value is the same as a Date/Time value with no digits to the left of the decimal place.

Datum/tid/tidszon – Visar datum/tid för tidszonen UTC med tidszonsförskjutning.Date/Time/Timezone – Represents a UTC Date/Time with a timezone offset. Den konverteras för närvarande till Datum/tid vid inläsning i modellen.It’s converted into Date/Time when loaded into the model. Power BI modellen justerar inte tidszonen baserat på användarens plats eller språk. Om värdet 09:00 läses in i modellen i USA visas det som 09:00 när rapporten öppnas och visas.The Power BI model doesn't adjust the timezone based on a user's location or locale etc. If a value of 09:00 is loaded into the model in the USA, it will display as 09:00 wherever the report is opened or viewed.

Varaktighet – Visar en viss tidslängd.Duration – Represents a length of time. Den konverteras till typen Decimaltal när den läses in i modellen.It’s converted into a Decimal Number Type when loaded into the model. Som decimaltal kan den adderas eller subtraheras från ett datum/tid-fält med korrekta resultat.As a Decimal Number type it can be added or subtracted from a Date/Time field with correct results. Som decimaltal kan du lätt kan använda den i visualiseringar som visar omfattning.As a Decimal Number type, you can easily use it in visualizations that show magnitude.

TexttypText type

Text – En datasträng med Unicode-tecken.Text - A Unicode character data string. Det kan vara strängar, tal eller datum som visas i ett textformat.Can be strings, numbers, or dates represented in a text format. Den maximala stränglängden är 268 435 456 Unicode-tecken (256 megatecken) eller 536 870 912 byte.Maximum string length is 268,435,456 Unicode characters (256 mega characters) or 536,870,912 bytes.

Typen Sant/falsktTrue/false type

Sant/falskt – Ett booleskt värde för antingen sant eller falskt.True/False – A Boolean value of either a True or False.

Typen tomt/nullBlanks/nulls type

Tomt – Är en datatyp i DAX som visar och ersätter null-värden i SQL.Blank - Is a data type in DAX that represents and replaces SQL nulls. Du kan skapa ett tomt värde med funktionen BLANK och testa om det finns några tomma värden med hjälp av den logiska funktionen ISBLANK.You can create a blank by using the BLANK function, and test for blanks by using the ISBLANK logical function.

Datatypen BinärBinary data type

Den binära datatypen kan användas för att representera andra data med binärformat.The Binary data type can be used to represent any other data with a binary format. I Frågeredigeraren kan du använda den när du läser in binära filer om du konverterar den till andra datatyper innan du läser in den till Power BI-modellen.Inside the Query Editor, you can use it when loading binary files if you convert it to other data types before loading it to the Power BI model. Binära kolumner stöds inte i Power BI-datamodellen.Binary columns aren't supported in the Power BI data model. Den finns på menyn Datavy och Rapportvy på grund av äldre anledningar, men om du försöker läsa in binära kolumner till Power BI-modellen kan du stöta på fel.It exists in the Data View and Report View menus for legacy reasons but if you try to load binary columns to the Power BI model you may run into errors.

Anteckning

Om en binär kolumn finns i utdata för stegen i en fråga, kan försök att uppdatera data via en gateway orsaka fel.If a binary column is in the output of the steps of a query, attempting to refresh the data through a gateway can cause errors. Vi rekommenderar att du uttryckligen tar bort alla binära kolumner som det sista steget i dina frågor.It's recommended that you explicitly remove any binary columns as the last step in your queries.

TabelldatatypTable data type

DAX använder en tabelldatatyp i många funktioner, till exempel aggregeringar och beräkningar av tidsinformation.DAX uses a table data type in many functions, such as aggregations and time intelligence calculations. Vissa funktioner kräver en referens till en tabell. Andra funktioner returnerar en tabell som sedan kan användas som indata för andra funktioner.Some functions require a reference to a table; other functions return a table that can then be used as input to other functions. I vissa funktioner som kräver en tabell som indata, kan du ange ett uttryck som returnerar en tabell. För vissa funktioner krävs en referens till en bastabell.In some functions that require a table as input, you can specify an expression that evaluates to a table; for some functions, a reference to a base table is required. Information om kraven för specifika funktioner finns i DAX-funktionsreferens.For information about the requirements of specific functions, see DAX Function Reference.

Implicit och explicit konvertering av datatyper i DAX-formlerImplicit and explicit data type conversion in DAX formulas

Varje DAX-funktion har specifika krav beträffande vilka typer av data som används som indata och utdata.Each DAX function has specific requirements as to the types of data that are used as inputs and outputs. Till exempel kräver en del funktioner heltal för vissa argument och datum för andra, medan andra funktioner kräver text eller tabeller.For example, some functions require integers for some arguments and dates for others; other functions require text or tables.

Om datan i kolumnen som du anger som ett argument inte är kompatibel med den datatyp som krävs av funktionen, returnerar DAX i många fall ett fel.If the data in the column you specify as an argument is incompatible with the data type required by the function, DAX in many cases will return an error. Dock kan det hända att DAX försöker att implicit konvertera datan till den datatyp som krävs.However, wherever possible DAX will attempt to implicitly convert the data to the required data type. Till exempel:For example:

  • Du kan ange ett datum som en sträng och DAX parsar då strängen och försöker omvandla den till ett Windows-format för datum och tid.You can type a date as a string, and DAX will parse the string and attempt to cast it as one of the Windows date and time formats.
  • Du kan lägga till TRUE + 1 och få resultatet 2, eftersom TRUE är implicit konverterat till talet 1 och åtgärden 1+1 utförs.You can add TRUE + 1 and get the result 2, because TRUE is implicitly converted to the number 1 and the operation 1+1 is performed.
  • Om du lägger till värden i två kolumner och det ena värdet visas som text ("12") och det andra som ett tal (12), konverterar DAX implicit strängen till ett tal och utför additionen för att få ett numeriskt resultat.If you add values in two columns, and one value happens to be represented as text ("12") and the other as a number (12), DAX implicitly converts the string to a number and then does the addition for a numeric result. Följande uttryck returnerar 44: = "22" + 22.The following expression returns 44: = "22" + 22.
  • Om du försöker sammanfoga två tal visar Excel dem som strängar och sammanfogar dem sedan.If you attempt to concatenate two numbers, Excel will present them as strings and then concatenate. Följande uttryck returnerar "1234": = 12 & 34.The following expression returns "1234": = 12 & 34.

Tabell med implicit datakonverteringTable of implicit data conversions

Vilken typ av konvertering som utförs bestäms av operatorn, som konverterar värdena om det krävs innan den begärda åtgärden utförs.The type of conversion that is performed is determined by the operator, which casts the values it requires before performing the requested operation. I tabellerna visas en lista med operatorerna och den konvertering som utförs på varje datatyp i kolumnen när den paras ihop med datatypen i korsande raden.These tables list the operators, and indicate the conversion that is performed on each data type in the column when it is paired with the data type in the intersecting row.

Anteckning

Textdatatyper ingår inte i dessa tabeller.Text data types are not included in these tables. När ett tal visas som ett textformat kommer Power BI i vissa fall försöka fastställa nummertypen och visa den som ett tal.When a number is represented as in a text format, in some cases Power BI will attempt to determine the number type and represent it as a number.

Addition (+)Addition (+)

Operator(+)Operator(+) INTEGERINTEGER CURRENCYCURRENCY REALREAL Datum/tidDate/time
INTEGERINTEGER INTEGERINTEGER CURRENCYCURRENCY REALREAL Datum/tidDate/time
CURRENCYCURRENCY CURRENCYCURRENCY CURRENCYCURRENCY REALREAL Datum/tidDate/time
REALREAL REALREAL REALREAL REALREAL Datum/tidDate/time
Datum/tidDate/time Datum/tidDate/time Datum/tidDate/time Datum/tidDate/time Datum/tidDate/time

Om till exempel ett reellt tal används i en addition i kombination med valutadata, konverteras båda värdena till REAL och resultatet returneras som REAL.For example, if a real number is used in an addition operation in combination with currency data, both values are converted to REAL, and the result is returned as REAL.

Subtraktion (-)Subtraction (-)

I följande tabell är radrubriken minuend (vänster sida) och kolumnrubriken är subtrahend (höger sida).In the following table, the row header is the minuend (left side) and the column header is the subtrahend (right side).

Operator(-)Operator(-) INTEGERINTEGER CURRENCYCURRENCY REALREAL Datum/tidDate/time
INTEGERINTEGER INTEGERINTEGER CURRENCYCURRENCY REALREAL REALREAL
CURRENCYCURRENCY CURRENCYCURRENCY CURRENCYCURRENCY REALREAL REALREAL
REALREAL REALREAL REALREAL REALREAL REALREAL
Datum/tidDate/time Datum/tidDate/time Datum/tidDate/time Datum/tidDate/time Datum/tidDate/time

Om till exempel om ett datum används i en subtraktion med någon annan datatyp, kommer båda värdena konverteras till datum och det returnerade värdet är också ett datum.For example, if a date is used in a subtraction operation with any other data type, both values are converted to dates, and the return value is also a date.

Anteckning

Datamodeller stöder också den enställiga operatorn – (negativ), men den här operatorn ändrar inte datatyp för operanden.Data models also support the unary operator, - (negative), but this operator does not change the data type of the operand.

Multiplikation (*)Multiplication (*)

Operator(*)Operator(*) INTEGERINTEGER CURRENCYCURRENCY REALREAL Datum/tidDate/time
INTEGERINTEGER INTEGERINTEGER CURRENCYCURRENCY REALREAL INTEGERINTEGER
CURRENCYCURRENCY CURRENCYCURRENCY REALREAL CURRENCYCURRENCY CURRENCYCURRENCY
REALREAL REALREAL CURRENCYCURRENCY REALREAL REALREAL

Om till exempel ett heltal kombineras med ett reellt tal i en multiplikation, kommer båda talen att konverteras till ett reellt tal och det returnerade värdet är också REAL.For example, if an integer is combined with a real number in a multiplication operation, both numbers are converted to real numbers, and the return value is also REAL.

Division (/)Division (/)

I följande tabell är radrubriken täljaren och kolumnrubriken är nämnaren.In the following table, the row header is the numerator and the column header is the denominator.

Operator(/) (rad/kolumn)Operator(/) (Row/Column) INTEGERINTEGER CURRENCYCURRENCY REALREAL Datum/tidDate/time
INTEGERINTEGER REALREAL CURRENCYCURRENCY REALREAL REALREAL
CURRENCYCURRENCY CURRENCYCURRENCY REALREAL CURRENCYCURRENCY REALREAL
REALREAL REALREAL REALREAL REALREAL REALREAL
Datum/tidDate/time REALREAL REALREAL REALREAL REALREAL

Om till exempel ett heltal kombineras med ett valutavärde i en division, kommer båda talen konverteras till reella tal och det returnerade värdet är också reellt.For example, if an integer is combined with a currency value in a division operation, both values are converted to real numbers, and the result is also a real number.

JämförelseoperatorerComparison operators

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 eller datum/tid-värden. Tal och datum/tid-värden anses ha samma rangordning.In comparison expressions, Boolean values are considered greater than string values and string values are considered greater than numeric or date/time values; numbers and date/time values are considered to have the same rank. Inga implicita konverteringar utförs för booleska värden eller strängvärden. BLANK eller ett tomt värde konverteras till 0/""/false, beroende på datatypen för det andra jämförelsevärdet.No implicit conversions are performed for Boolean or string values; BLANK or a blank value is converted to 0/""/false depending on the data type of the other compared value.

Följande DAX-uttryck visar hur det fungerar:The following DAX expressions illustrate this behavior:

=IF(FALSE()>"sant","Uttrycket är sant", "Uttrycket är falskt"), returnerar "Uttrycket är sant"=IF(FALSE()>"true","Expression is true", "Expression is false"), returns "Expression is true"

=IF("12">12,"Uttrycket är sant", "Uttrycket är falskt"), returnerar "Uttrycket är sant"=IF("12">12,"Expression is true", "Expression is false"), returns "Expression is true"

=IF("12"=12,"Uttrycket är sant", "Uttrycket är falskt"), returnerar "Uttrycket är falskt"=IF("12"=12,"Expression is true", "Expression is false"), returns "Expression is false"

Konverteringar utförs implicit för numeriska eller datum/tid-typer enligt följande tabell:Conversions are performed implicitly for numeric or date/time types as described in the following table:

JämförelseoperatorComparison Operator INTEGERINTEGER CURRENCYCURRENCY REALREAL Datum/tidDate/time
INTEGERINTEGER INTEGERINTEGER CURRENCYCURRENCY REALREAL REALREAL
CURRENCYCURRENCY CURRENCYCURRENCY CURRENCYCURRENCY REALREAL REALREAL
REALREAL REALREAL REALREAL REALREAL REALREAL
Datum/tidDate/time REALREAL REALREAL REALREAL Datum/tidDate/Time

Hantera tomma värden, tomma strängar och nollvärdenHandling blanks, empty strings, and zero values

I DAX visas null-värden, tomma värden, tomma celler eller saknade värden med samma nya värdetyp, BLANK.In DAX, a null, blank value, empty cell, or a missing value is all represented by the same new value type, a BLANK. Du kan dessutom skapa tomma värden med funktionen BLANK, eller testa om det finns tomma värden med funktionen ISBLANK.You can also generate blanks by using the BLANK function, or test for blanks by using the ISBLANK function.

Hur tomma värden ska hanteras i åtgärder som till exempel addition eller sammanfogning, beror på den enskilda funktionen.How blanks are handled in operations such as addition or concatenation depends on the individual function. I följande tabell sammanfattas skillnaderna mellan DAX och Microsoft Excel-formler för hur tomma värden hanteras.The following table summarizes the differences between DAX and Microsoft Excel formulas, in the way that blanks are handled.

UttryckExpression DAXDAX ExcelExcel
BLANK + BLANKBLANK + BLANK BLANKBLANK 0(zero)0(zero)
BLANK + 5BLANK + 5 55 55
BLANK * 5BLANK * 5 BLANKBLANK 0(zero)0(zero)
5/BLANK5/BLANK InfinityInfinity FelError
0/BLANK0/BLANK NaNNaN ErrorError
BLANK/BLANKBLANK/BLANK BLANKBLANK FelError
FALSE OR BLANKFALSE OR BLANK FALSEFALSE FALSEFALSE
FALSE AND BLANKFALSE AND BLANK FALSEFALSE FALSEFALSE
TRUE OR BLANKTRUE OR BLANK TRUETRUE TRUETRUE
TRUE AND BLANKTRUE AND BLANK FALSEFALSE TRUETRUE
BLANK OR BLANKBLANK OR BLANK BLANKBLANK FelError
BLANK AND BLANKBLANK AND BLANK BLANKBLANK FelError