Dela via


Typer och typkonvertering

Power Query M använder typer för att klassificera värden för att ha en mer strukturerad datauppsättning. Den här artikeln beskriver de vanligaste M-typerna och hur du konverterar en typ till en annan typ.

Vanliga typer

Datatyper refererar till alla typer som används för att klargöra strukturen för specifika data. De vanligaste datatyperna är primitiva typer. Dessa typer omfattar:

  • type any, som klassificerar alla värden.
  • type null, som klassificerar null-värdet.
  • type logical, som klassificerar värdena true och false.
  • type number, som klassificerar talvärden.
  • type time, som klassificerar tidsvärden.
  • type date, som klassificerar datumvärden.
  • type datetime, som klassificerar datetime-värden.
  • type datetimezone, som klassificerar datetimezone-värden.
  • type duration, som klassificerar varaktighetsvärden.
  • type text, som klassificerar textvärden.
  • type binary, som klassificerar binära värden.
  • type type, som klassificerar typvärden.
  • type list, som klassificerar listvärden.
  • type record, som klassificerar registrerade värden.
  • type table, som klassificerar tabellvärden.
  • type function, som klassificerar funktionsvärden.
  • type anynonnull, som klassificerar alla värden exklusive null.
  • type none, som inte klassificerar några värden.

Mer information om dessa typer finns i Typer.

Förutom dessa vanliga datatyper finns det också en uppsättning datatyper som använder formatet *.Type. De vanligaste datatyperna i det här formatet är:

  • Byte.Type, som klassificerar ett 8-bitars talvärde.
  • Int8.Type, som klassificerar ett 8-bitars talvärde.
  • Int16.Type, som klassificerar ett 16-bitars talvärde.
  • Int32.Type, som klassificerar ett 32-bitars talvärde.
  • Int64.Type, som klassificerar ett 64-bitars talvärde.
  • Single.Type, som klassificerar ett 9-siffrigt flytande talvärde.
  • Double.Type, som klassificerar ett 17-siffrigt flytande talvärde.
  • Decimal.Type, som klassificerar ett 15-siffrigt flytande talvärde.
  • Currency.Type, som klassificerar ett 19-siffrigt talvärde med fyra siffror till höger om "."-avgränsaren.
  • Percentage.Type, som klassificerar ett 15-siffrigt talvärde med en mask för att formatera värdet som en procentandel.
  • Guid.Type, som klassificerar ett GUID-textvärde.

De primitiva typerna kan också skrivas i *.Type format. Därför kan du skriva number som Number.Type, record som Record.Typeoch så vidare.

När du använder någon av dessa typer bör du vara medveten om att dessa typer, precis som all M-kod, är skiftlägeskänsliga.

Följande tabell innehåller mer information om var och en av dessa typer.

Datatyp beskrivning
any Den any datatypen är den status som anges när ett värde inte har någon explicit datatypsdefinition. Den any typen är den datatyp som klassificerar alla värden.
binary Den binary datatypen kan användas för att representera andra data med binärt format.
type Ett värde som klassificerar andra värden. Mer information finns i Typer.
null Representerar avsaknaden av ett värde eller ett värde med obestämt eller okänt tillstånd.
anynonnull Representerar vilken typ som helst som är icke-nullbar.
date Representerar bara ett datum (ingen tidsdel).
time Representerar bara tid (ingen datumdel).
datetime Representerar både ett datum- och tidsvärde. Tidsdelen av ett datum lagras som ett bråk till hela multiplar på 1/300 sekunder (3,33 ms). Datum mellan åren 1900 och 9999 stöds.
datetimezone Representerar ett UTC-datum och en tid med en tidszonsförskjutning.
duration Representerar en tidsperiod. Den här typen kan läggas till eller subtraheras från ett datetime fält med rätt resultat. Mer information finns i Varaktighet.
text En Unicode-teckendatasträng. Kan vara strängar, siffror eller datum som representeras i ett textformat. Maximal stränglängd är 268 435 456 Unicode-tecken (där varje Unicode-tecken är två byte) eller 536 870 912 byte.
logical Ett booleskt värde för antingen true eller false.
list Ett värde som skapar en sekvens med värden när de räknas upp. För mer information, gå till Listtyper och Listvärden.
record En ordnad sekvens med fält. Varje fält innehåller ett fältnamn och fältvärde. För mer information, se Posttyper och Postvärden.
table En ordnad sekvens med rader indelade i kolumner. Mer information finns i Tabelltyper och Tabellvärden.
function Ett värde som mappar en uppsättning argument till ett enda värde. Mer information finns i Functions och Funktionstyper.
number Representerar ett tal som används för numeriska och aritmetiska åtgärder. Mer information finns i Number.
Decimal.Type Representerar ett flyttalsnummer på 64 bitar (åtta byte). Det är den vanligaste taltypen och motsvarar tal som du brukar tänka på. Även om den är utformad för att hantera tal med bråkvärden, hanterar den även heltal. Decimal.Type 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. Till exempel är tal som 34, 34.01 och 34.000367063 giltiga decimaltal. Den största precisionen som kan representeras i en Decimal.Type är 15 siffror lång. Decimalavgränsaren kan förekomma var som helst i talet. Decimal.Type motsvarar hur Excel lagrar sina siffror. Observera att ett binärt flyttalsnummer inte kan representera alla tal inom det intervall som stöds med 100% noggrannhet. Därför kan mindre skillnader i precision uppstå när vissa decimaltal representeras.
Currency.Type Den här datatypen har en fast plats för decimalavgränsaren. Decimalavgränsaren har alltid fyra siffror till höger och tillåter 19 signifikanssiffror. Det största värdet det kan representera är 922 337 203 685 477,5807 (positivt eller negativt). Till skillnad från Decimal.Typeär Currency.Type alltid exakt och är därför användbar i situationer där flyttalsnotationens oprecishet kan introducera fel.
Percentage.Type I grunden samma som en Decimal.Type, men den har en mask för att formatera värdena som ett procentvärde.
Int8.Type Representerar ett signerat heltalsvärde på 8 bitar (en byte). Eftersom det är ett heltal har det inga siffror till höger om decimaltecknet. Det tillåter 3 siffror; ett positivt eller negativt heltal mellan -128 och 127. Precis som med Currency.Typekan Int8.Type vara användbart i de fall där du behöver kontrollera avrundning.
Int16.Type Representerar ett signerat heltalsvärde på 16 bitar (två byte). Eftersom det är ett heltal har det inga siffror till höger om decimaltecknet. Det tillåter 6 siffror; ett positivt eller negativt heltal mellan –32 768 (–2^15) och 32 767 (2^15–1). Precis som med Currency.Typekan Int16.Type vara användbart i de fall där du behöver kontrollera avrundning.
Int32.Type Representerar ett 32-bitars (fyra byte) signerat heltalsvärde. Eftersom det är ett heltal har det inga siffror till höger om decimaltecknet. Det tillåter 10 siffror; ett positivt eller negativt heltal mellan –2 147 483 648 (–2^31) och 2 147 483 647 (2^31–1). Precis som med Currency.Typekan Int32.Type vara användbart i de fall där du behöver kontrollera avrundning.
Int64.Type Representerar ett 64-bitars (åtta byte) signerat heltalsvärde. Eftersom det är ett heltal har det inga siffror till höger om decimaltecknet. Det tillåter 19 siffror; ett positivt eller negativt heltal mellan –9 223 372 036 854 775 808 (–2^63) och 9 223 372 036 854 775 807 (2^63–1). Den kan representera största möjliga precision för de olika numeriska datatyperna. Precis som med Currency.Typekan Int64.Type vara användbart i de fall där du behöver kontrollera avrundning.
Byte.Type Representerar ett osignerat heltalsvärde på 8 bitar (en byte). Eftersom det är ett osignerat heltal har det inga siffror till höger om decimaltecknet och kan bara innehålla positiva värden. Det tillåter 3 siffror; ett positivt tal mellan 0 och 255.
Single.Type Representerar en flyttalstyp med enkel precision. Det har ett ungefärligt intervall på -3,99 X 1038 till 3,99 X 1038 och stöder cirka 9 siffror med precision. Det kan också representera positiv och negativ oändlighet och NaN (inte ett tal).
Double.Type Representerar ett flyttal med dubbel precision. Det har ett ungefärligt intervall på –1,7976931348623158 X 10307 till 1,7976931348623158 X 10307 och stöder cirka 17 siffrors precision. Det kan också representera positiv och negativ oändlighet och NaN (inte ett tal).
Guid.Type Representerar ett 128-bitars textvärde som består av 32 hexadecimala värden med hjälp av formfaktorn för <8 hexvärden>–<4 hexvärden>–<4 hexvärden>–<4 hexvärden>–<12 hexvärden>, som utgör GUID-värdet.
none Den datatyp som inte klassificerar några värden.

De enda andra vanliga *.Type värden är uppräkningar. Mer information finns i Uppräkningar.

Typkonvertering

Formelspråket Power Query M har formler att konvertera mellan typer. Följande är en sammanfattning av konverteringsformler i M.

Antal

Typkonvertering beskrivning
Number.FromText(text som ord) som tal Returnerar ett talvärde från ett textvärde.
Number.ToText(tal som tal) som text Returnerar ett textvärde från ett talvärde.
Number.From(värde som något annat) som tal Returnerar ett talvärde från ett värde.
Byte.From(värde som något annat) som tal Returnerar ett 8-bitars heltalsvärde från det angivna värdet.
Int8.From(värde som något annat) som tal Returnerar ett 8-bitars heltalsvärde från det angivna värdet.
Int16.From(värde som något annat) som tal Returnerar ett 16-bitars heltalsvärde från det angivna värdet.
Int32.From(värde som något annat) som tal Returnerar ett 32-bitars heltalsvärde från det angivna värdet.
Int64.From(värde som något annat) som tal Returnerar ett 64-bitars heltalsvärde från det angivna värdet.
Single.From(värde som något annat) som tal Returnerar ett värde med ett enskilt tal från det angivna värdet.
Double.From(värde som något annat) som tal Returnerar ett värde med dubbla tal från det angivna värdet.
Decimal.From(värde som något annat) som tal Returnerar ett decimaltalsvärde från det angivna värdet.
Currency.From(värde som något annat) som tal Returnerar ett värde för valutanummer från det angivna värdet.
Percentage.From(värde som något annat) som tal Returnerar ett procenttalsvärde från det angivna värdet.

Text

Typkonvertering beskrivning
Text.From(värde som något annat) som text Returnerar textrepresentationen av ett tal, datum, tid, datetime, datetimezone, logiskt värde, varaktighet eller binärt värde.
Guid.From(värde som text) som text Returnerar GUID-representationen av den angivna texten.

Logiskt

Typkonvertering beskrivning
Logical.FromText(text som text) som logiskt Returnerar ett logiskt värde för sant eller falskt från ett textvärde.
Logical.ToText(logisk som logisk) som text Returnerar ett textvärde från ett logiskt värde.
Logical.From(värde som vilket som helst) som logiskt Returnerar ett logiskt värde från ett värde.

Datum, tid, DateTime och DateTimeZone

Typkonvertering beskrivning
. FromText(text som text) som datum, tid, datetime eller datetimezone Returnerar ett datum-, tids-, datetime- eller datetimezone-värde från en uppsättning datumformat och kulturvärde.
. ToText(datum, tid, dateTime eller dateTimeZone som datum, tid, datetime eller datetimezone) som text Returnerar ett textvärde från ett datum-, tids-, datetime- eller datetimezone-värde.
. From(value as any) Returnerar ett datum-, tids-, datetime- eller datetimezone-värde från ett värde.
. ToRecord(datum, tid, dateTime eller dateTimeZone som datum, tid, datetime eller datetimezone) Returnerar en post som innehåller delar av ett datum-, tids-, datetime- eller datetimezone-värde.