Typer og typekonvertering
Power Query M bruker typer til å klassifisere verdier for å ha et mer strukturert datasett. Denne artikkelen beskriver de mest brukte M-typene og hvordan du konverterer én type til en annen type.
Vanlige typer
Datatyper refererer til alle typer som brukes til å klargjøre strukturen til bestemte data. De mest brukte datatypene er primitive typer. Disse typene omfatter:
-
type any
, som klassifiserer en verdi. -
type null
, som klassifiserer nullverdien. -
type logical
, som klassifiserer verdiene sann og usann. -
type number
, som klassifiserer tallverdier. -
type time
, som klassifiserer tidsverdier. -
type date
, som klassifiserer datoverdier. -
type datetime
, som klassifiserer datetime-verdier. -
type datetimezone
, som klassifiserer datetimezone-verdier. -
type duration
, som klassifiserer varighetsverdier. -
type text
, som klassifiserer tekstverdier. -
type binary
, som klassifiserer binære verdier. -
type type
, som klassifiserer typeverdier. -
type list
, som klassifiserer listeverdier. -
type record
, som klassifiserer postverdier. -
type table
, som klassifiserer tabellverdier. -
type function
, som klassifiserer funksjonsverdier. -
type anynonnull
, som klassifiserer alle verdier unntatt null. -
type none
, som ikke klassifiserer noen verdier.
Hvis du vil ha mer informasjon om disse typene, kan du gå til Typer.
I tillegg til disse vanlige datatypene finnes det også et sett med datatyper som bruker formatet *.Type
. De mest brukte datatypene i dette formatet er:
-
Byte.Type
, som klassifiserer en 8-biters tallverdi. -
Int8.Type
, som klassifiserer en 8-biters tallverdi. -
Int16.Type
, som klassifiserer en 16-biters tallverdi. -
Int32.Type
, som klassifiserer en 32-biters tallverdi. -
Int64.Type
, som klassifiserer en 64-biters tallverdi. -
Single.Type
, som klassifiserer en 9-sifret flytende tallverdi. -
Double.Type
, som klassifiserer en 17-sifret flytende tallverdi. -
Decimal.Type
, som klassifiserer en 15-sifret flytende tallverdi. -
Currency.Type
, som klassifiserer en 19-sifret tallverdi med fire sifre til høyre for «». skilletegnet. -
Percentage.Type
, som klassifiserer en 15-sifret tallverdi med en maske for å formatere verdien som en prosentdel. -
Guid.Type
, som klassifiserer en GUID-tekstverdi.
Primitive typer kan også skrives i *.Type
format. Derfor kan du skrive number
som Number.Type
, record
som Record.Type
og så videre.
Når du bruker noen av disse typene, må du være oppmerksom på at disse typene skiller mellom store og små bokstaver i disse typene.
Tabellen nedenfor inneholder mer informasjon om hver av disse typene.
Datatype | Bekrivelse |
---|---|
any |
Datatypen any er statusen som angis når en verdi ikke har en eksplisitt datatypedefinisjon. Den any typen er datatypen som klassifiserer alle verdier. |
binary |
Datatypen binary kan brukes til å representere andre data med et binært format. |
type |
En verdi som klassifiserer andre verdier. Hvis du vil ha mer informasjon, kan du gå til Typer. |
null |
Representerer fraværet av en verdi, eller en verdi med ubestemt eller ukjent tilstand. |
anynonnull |
Representerer alle typer som ikke kan brukes. |
date |
Representerer bare en dato (ingen tidsdel). |
time |
Representerer bare klokkeslett (ingen datodel). |
datetime |
Representerer både en dato- og klokkeslettverdi. Klokkeslettdelen av en dato lagres som en brøk til hele multipler på 1/300 sekunder (3,33 ms). Datoer mellom årene 1900 og 9999 støttes. |
datetimezone |
Representerer en UTC-dato og -klokkeslett med en tidssoneforskyvning. |
duration |
Representerer en tidsperiode. Denne typen kan legges til eller trekkes fra et datetime felt med riktige resultater. Hvis du vil ha mer informasjon, kan du gå til Varighet. |
text |
En Unicode-tegndatastreng. Kan være strenger, tall eller datoer representert i et tekstformat. Maksimal strenglengde er 268 435 456 Unicode-tegn (der hvert Unicode-tegn er to byte) eller 536 870 912 byte. |
logical |
En boolsk verdi av enten true eller false . |
list |
En verdi som produserer en sekvens med verdier når den nummereres. Hvis du vil ha mer informasjon, kan du gå til listetyper og Listeverdier. |
record |
En ordnet sekvens av felt. Hvert felt inneholder et feltnavn og en feltverdi. Hvis du vil ha mer informasjon, kan du gå til Oppføringstyper og Postverdier. |
table |
En ordnet sekvens med rader delt inn i kolonner. Hvis du vil ha mer informasjon, kan du gå til tabelltyper og tabellverdier. |
function |
En verdi som tilordner et sett med argumenter til én enkelt verdi. Hvis du vil ha mer informasjon, kan du gå til Funksjoner og Funksjonstyper. |
number |
Representerer et hvilket som helst tall som brukes for numeriske og aritmetiske operasjoner. Hvis du vil ha mer informasjon, kan du gå til Number. |
Decimal.Type |
Representerer et 64-biters (åtte byte) flyttall. Det er den vanligste talltypen, og tilsvarer tall som du vanligvis tenker på dem. Selv om den er utformet for å håndtere tall med brøkverdier, håndterer den også heltall. Den Decimal.Type kan håndtere negative verdier fra –1,79E +308 til –2,23E –308, 0 og positive verdier fra 2,23E –308 til 1,79E + 308. Tall som 34, 34,01 og 34,000367063 er for eksempel gyldige desimaltall. Den største presisjonen som kan representeres i en Decimal.Type , er 15 sifre. Desimalskilletegnet kan forekomme hvor som helst i tallet. Den Decimal.Type tilsvarer hvordan Excel lagrer tallene. Vær oppmerksom på at et binært flyttall ikke kan representere alle tall innenfor det støttede området med 100% nøyaktighet. Dermed kan det oppstå mindre forskjeller i presisjon når det representerer bestemte desimaltall. |
Currency.Type |
Denne datatypen har en fast plassering for desimalskilletegnet. Desimalskilletegnet har alltid fire sifre til høyre og gir 19 sifre av gjeldende betydning. Den største verdien den kan representere, er 922 337 203 685 477 5807 (positiv eller negativ). I motsetning til Decimal.Type er Currency.Type alltid nøyaktig og er derfor nyttig i tilfeller der imprecision av flytende punkt notasjon kan introdusere feil. |
Percentage.Type |
Fundamentalt det samme som en Decimal.Type , men den har en maske for å formatere verdiene som en prosentverdi. |
Int8.Type |
Representerer en 8-biters (én byte) signert heltallsverdi. Fordi det er et heltall, har det ingen sifre til høyre for desimaltegnet. Den gir 3 sifre. et positivt eller negativt heltall mellom –128 og 127. Som med Currency.Type kan Int8.Type være nyttig i tilfeller der du må kontrollere avrunding. |
Int16.Type |
Representerer en 16-biters (to byte) signert heltallsverdi. Fordi det er et heltall, har det ingen sifre til høyre for desimaltegnet. Det gir mulighet for seks sifre. et positivt eller negativt heltall mellom –32 768 (–2^15) og 32 767 (2^15-1). Som med Currency.Type kan Int16.Type være nyttig i tilfeller der du må kontrollere avrunding. |
Int32.Type |
Representerer en 32-biters (fire byte) signert heltallsverdi. Fordi det er et heltall, har det ingen sifre til høyre for desimaltegnet. Den gir 10 sifre. et positivt eller negativt heltall mellom –2 147 483 648 (–2^31) og 2 147 483 647 (2^31–1). Som med Currency.Type kan Int32.Type være nyttig i tilfeller der du må kontrollere avrunding. |
Int64.Type |
Representerer en 64-biters (åtte byte) signert heltallsverdi. Fordi det er et heltall, har det ingen sifre til høyre for desimaltegnet. Den gir 19 sifre. et positivt eller negativt heltall mellom –9 223 372 036 854 775 808 (–2^63) og 9 223 372 036 854 775 807 (2^63–1). Den kan representere størst mulig presisjon av de ulike numeriske datatypene. Som med Currency.Type kan Int64.Type være nyttig i tilfeller der du må kontrollere avrunding. |
Byte.Type |
Representerer en 8-biters (én byte) usignert heltallsverdi. Fordi det er et heltall som ikke er signert, har det ingen sifre til høyre for desimaltegnet og kan bare inneholde positive verdier. Den gir 3 sifre. et positivt tall mellom 0 og 255. |
Single.Type |
Representerer et flyttall med én presisjon. Den har et omtrentlig område på –3,99 X 1038 til 3,99 X 1038 og støtter omtrent 9 sifre med presisjon. Det kan også representere positiv og negativ uendelighet, og NaN (ikke et tall). |
Double.Type |
Representerer et flyttall med dobbel presisjon. Den har et omtrentlig område på –1,7976931348623158 X 10307 til 1,7976931348623158 X 10307 og støtter omtrent 17 sifre med presisjon. Det kan også representere positiv og negativ uendelighet, og NaN (ikke et tall). |
Guid.Type |
Representerer en 128-biters tekstverdi som består av 32 heksadesimale verdier ved hjelp av formfaktoren for <8 heksadesimale verdier>-<4 heksadesimale verdier>-<4 heksadesimale verdier>-<4 heksadesimale verdier>-<12 heksadesimale verdier>, som utgjør GUID-verdien. |
none |
Datatypen som ikke klassifiserer noen verdier. |
De eneste andre ofte brukte *.Type
verdiene er opplistinger. Hvis du vil ha mer informasjon, kan du gå til Opplistinger.
Typekonvertering
Power Query M-formelspråket har formler som skal konverteres mellom typer. Følgende er et sammendrag av konverteringsformler i M.
Antall
Typekonvertering | Bekrivelse |
---|---|
Number.FromText(tekst som tekst) som tall | Returnerer en tallverdi fra en tekstverdi. |
Number.ToText(tall som tall) som tekst | Returnerer en tekstverdi fra en tallverdi. |
Number.From(verdi som en hvilken som helst) som tall | Returnerer en tallverdi fra en verdi. |
Byte.From(verdi som en hvilken som helst) som tall | Returnerer en 8-biters heltallsverdi fra den angitte verdien. |
Int8.From(verdi som en hvilken som helst) som tall | Returnerer en 8-biters heltallsverdi fra den angitte verdien. |
Int16.From(verdi som en hvilken som helst) som tall | Returnerer en 16-biters heltallsverdi fra den angitte verdien. |
Int32.From(verdi som en hvilken som helst) som tall | Returnerer en 32-biters heltallsverdi fra den angitte verdien. |
Int64.From(verdi som en hvilken som helst) som tall | Returnerer en 64-biters heltallsverdi fra den angitte verdien. |
Single.From(verdi som en hvilken som helst) som tall | Returnerer en enkelt tallverdi fra den angitte verdien. |
Double.From(verdi som en hvilken som helst) som tall | Returnerer en dobbel tallverdi fra den angitte verdien. |
Decimal.From(verdi som en hvilken som helst) som tall | Returnerer en desimaltallverdi fra den angitte verdien. |
Currency.From(verdi som en hvilken som helst) som tall | Returnerer en valutatallverdi fra den angitte verdien. |
Percentage.From(verdi som en hvilken som helst) som tall | Returnerer en prosentverdi fra den angitte verdien. |
Tekstmelding
Typekonvertering | Bekrivelse |
---|---|
Text.From(verdi som en hvilken som helst) som tekst | Returnerer tekstpresentasjonen av en tall-, dato-, klokkeslett-, datetime-, datetimezone-, logisk-, varighets- eller binærverdi. |
Guid.From(verdi som tekst) som tekst | Returnerer GUID-representasjonen av den angitte teksten. |
Logisk
Typekonvertering | Bekrivelse |
---|---|
Logical.FromText(tekst som tekst) som logisk | Returnerer en logisk verdi av sann eller usann fra en tekstverdi. |
Logical.ToText(logisk som logisk) som tekst | Returnerer en tekstverdi fra en logisk verdi. |
Logical.From(verdi som noen) som logisk | Returnerer en logisk verdi fra en verdi. |
Dato, klokkeslett, DateTime og DateTimeZone
Typekonvertering | Bekrivelse |
---|---|
. FromText(tekst som tekst) som dato, klokkeslett, datetime eller datetimezone | Returnerer en dato-, klokkeslett-, datetime- eller datetimezone-verdi fra et sett med datoformater og kulturverdi. |
. ToText(dato, klokkeslett, dateTime eller dateTimeZone som dato, klokkeslett, datetime eller datetimezone) som tekst | Returnerer en tekstverdi fra en dato-, klokkeslett-, datetime- eller datetimezone-verdi. |
. From(value as any) | Returnerer en dato-, klokkeslett-, datetime- eller datetimezone-verdi fra en verdi. |
. ToRecord(dato, klokkeslett, dateTime eller dateTimeZone som dato, klokkeslett, datetime eller datetimezone) | Returnerer en post som inneholder deler av en dato-, klokkeslett-, datetime- eller datetimezone-verdi. |