Typer og typekonvertering
Power Query M bruger typer til at klassificere værdier for at have et mere struktureret datasæt. I denne artikel beskrives de mest anvendte M-typer, og hvordan du konverterer en type til en anden type.
Almindeligt anvendte typer
Datatyper refererer til enhver type, der bruges til at tydeliggøre strukturen af bestemte data. De mest anvendte datatyper er primitive typer. Disse typer omfatter:
-
type any
, som klassificerer en vilkårlig værdi. -
type null
, som klassificerer null-værdien. -
type logical
, som klassificerer værdierne true og false. -
type number
, som klassificerer talværdier. -
type time
, som klassificerer klokkeslætsværdier. -
type date
, som klassificerer datoværdier. -
type datetime
, som klassificerer datetime-værdier. -
type datetimezone
, som klassificerer datetimezone-værdier. -
type duration
, som klassificerer varighedsværdier. -
type text
, som klassificerer tekstværdier. -
type binary
, som klassificerer binære værdier. -
type type
, som klassificerer typeværdier. -
type list
, som klassificerer listeværdier. -
type record
, som klassificerer postværdier. -
type table
, som klassificerer tabelværdier. -
type function
, som klassificerer funktionsværdier. -
type anynonnull
, som klassificerer alle værdier, bortset fra null. -
type none
, som ikke klassificerer nogen værdier.
Du kan få flere oplysninger om disse typer ved at gå til Typer.
Ud over disse almindelige datatyper er der også et sæt datatyper, der bruger formatet *.Type
. De mest anvendte datatyper i dette format er:
-
Byte.Type
, som klassificerer en 8-bit talværdi. -
Int8.Type
, som klassificerer en 8-bit talværdi. -
Int16.Type
, som klassificerer en 16-bit talværdi. -
Int32.Type
, som klassificerer en 32-bit talværdi. -
Int64.Type
, som klassificerer en 64-bit talværdi. -
Single.Type
, som klassificerer en 9-cifret flydende talværdi. -
Double.Type
, som klassificerer en 17-cifret flydende talværdi. -
Decimal.Type
, som klassificerer en 15-cifret flydende talværdi. -
Currency.Type
, som klassificerer en 19-cifret talværdi med fire cifre til højre for separatoren ".". -
Percentage.Type
, som klassificerer en 15-cifret talværdi med en maske for at formatere værdien som en procentdel. -
Guid.Type
, som klassificerer en GUID-tekstværdi.
De primitive typer kan også skrives i *.Type
format. Du kan derfor skrive number
som Number.Type
, record
som Record.Type
osv.
Når du bruger en af disse typer, skal du være opmærksom på, at der er forskel på store og små bogstaver i disse typer på samme måde som al M-kode.
Følgende tabel indeholder flere oplysninger om hver af disse typer.
Datatype | Beskrivelse |
---|---|
any |
Den any datatype er den status, der gives, når en værdi ikke har en eksplicit datatypedefinition. Den any type er den datatype, der klassificerer alle værdier. |
binary |
Datatypen binary kan bruges til at repræsentere alle andre data med et binært format. |
type |
En værdi, der klassificerer andre værdier. Du kan få flere oplysninger ved at gå til Typer. |
null |
Repræsenterer fraværet af en værdi eller en værdi af ubestemt eller ukendt tilstand. |
anynonnull |
Repræsenterer en hvilken som helst type, der ikke kanulleres. |
date |
Repræsenterer kun en dato (ingen klokkeslætsdel). |
time |
Repræsenterer kun klokkeslæt (ingen datodel). |
datetime |
Repræsenterer både en dato- og klokkeslætsværdi. Klokkeslætsdelen af en dato gemmes som en brøkdel af hele multiplum af 1/300 sekunder (3,33 ms). Datoer mellem årene 1900 og 9999 understøttes. |
datetimezone |
Repræsenterer en UTC-dato og et UTC-klokkeslæt med en tidszoneforskydning. |
duration |
Repræsenterer et tidsrum. Denne type kan tilføjes eller trækkes fra et datetime felt med korrekte resultater. Du kan få flere oplysninger ved at gå til Varighed. |
text |
En datastreng med Unicode-tegn. Kan være strenge, tal eller datoer, der er repræsenteret i et tekstformat. Den maksimale strenglængde er 268.435.456 Unicode-tegn (hvor hvert Unicode-tegn er to byte) eller 536.870.912 byte. |
logical |
En boolesk værdi af enten true eller false . |
list |
En værdi, der opretter en sekvens af værdier, når den optæles. Du kan få flere oplysninger ved at gå til Listetyper og Listeværdier. |
record |
En sorteret sekvens af felter. Hvert felt indeholder et feltnavn og en feltværdi. Du kan få flere oplysninger ved at gå til Posttyper og Postværdier. |
table |
En sorteret sekvens af rækker, der er opdelt i kolonner. Du kan få flere oplysninger ved at gå til Tabeltyper og Tabelværdier. |
function |
En værdi, der knytter et sæt argumenter til en enkelt værdi. Du kan få flere oplysninger ved at gå til Functions og Funktionstyper. |
number |
Repræsenterer et vilkårligt tal, der bruges til numeriske og aritmetiske handlinger. Du kan få flere oplysninger ved at gå til Nummer. |
Decimal.Type |
Repræsenterer et flydende tal på 64-bit (otte byte). Det er den mest almindelige taltype og svarer til tal, som du normalt tænker på dem. Selvom den er designet til at håndtere tal med brøkdele, håndterer den også heltal. Den Decimal.Type kan håndtere negative værdier fra –1,79E +308 til -2,23E -308, 0 og positive værdier fra 2,23E -308 til og med 1,79E + 308. Tal som 34, 34,01 og 34,000367063 er f.eks. gyldige decimaltal. Den største præcision, der kan repræsenteres i en Decimal.Type , er 15 cifre lang. Decimalseparatoren kan forekomme et vilkårligt sted i tallet. Den Decimal.Type svarer til, hvordan Excel gemmer sine tal. Bemærk, at et binært flydende tal ikke kan repræsentere alle tal inden for det understøttede område med 100% nøjagtighed. Der kan derfor forekomme mindre forskelle i præcision, når der repræsenteres visse decimaltal. |
Currency.Type |
Denne datatype har en fast placering til decimalseparatoren. Decimalseparatoren har altid fire cifre til højre og tillader 19 betydende cifre. Den største værdi, den kan repræsentere, er 922.337.203.685.477,5807 (positiv eller negativ). I modsætning til Decimal.Type er Currency.Type altid præcis og er derfor nyttig i de tilfælde, hvor upålmodigheden af notation med flydende tal kan medføre fejl. |
Percentage.Type |
Grundlæggende det samme som en Decimal.Type , men den har en maske til at formatere værdierne som en procentværdi. |
Int8.Type |
Repræsenterer en 8-bit (en-byte)-signeret heltalsværdi. Da det er et heltal, har det ingen cifre til højre for decimaltegnet. Det giver mulighed for tre cifre. et positivt eller negativt heltal mellem –128 og 127. Som med Currency.Type kan Int8.Type være nyttigt i de tilfælde, hvor du har brug for at styre afrunding. |
Int16.Type |
Repræsenterer en heltalsværdi på 16-bit (to byte). Da det er et heltal, har det ingen cifre til højre for decimaltegnet. Det giver mulighed for 6 cifre; et positivt eller negativt heltal mellem –32.768 (-2^15) og 32.767 (2^15-1). Som med Currency.Type kan Int16.Type være nyttigt i de tilfælde, hvor du har brug for at styre afrunding. |
Int32.Type |
Repræsenterer en 32-bit (firebyte)-signeret heltalsværdi. Da det er et heltal, har det ingen cifre til højre for decimaltegnet. Det giver mulighed for 10 cifre; et positivt eller negativt heltal mellem –2.147.483.648 (-2^31) og 2.147.483.647 (2^31-1). Som med Currency.Type kan Int32.Type være nyttigt i de tilfælde, hvor du har brug for at styre afrunding. |
Int64.Type |
Repræsenterer en heltalsværdi på 64-bit (otte byte). Da det er et heltal, har det ingen cifre til højre for decimaltegnet. Det giver mulighed for 19 cifre. et positivt eller negativt heltal mellem –9.223.372.036.854.775.808 (-2^63) og 9.223.372.036.854.775.807 (2^63-1). Den kan repræsentere den størst mulige præcision af de forskellige numeriske datatyper. Som med Currency.Type kan Int64.Type være nyttigt i de tilfælde, hvor du har brug for at styre afrunding. |
Byte.Type |
Repræsenterer en 8-bit (en-byte) heltalsværdi, der ikke er signeret. Da det er et heltal uden fortegn, har det ingen cifre til højre for decimaltegnet og kan kun indeholde positive værdier. Det giver mulighed for tre cifre. et positivt tal mellem 0 og 255. |
Single.Type |
Repræsenterer et flydende tal med en enkelt præcision. Det har et omtrentligt interval på –3,99 X 1038 til 3,99 X 1038 og understøtter ca. 9 cifre præcision. Det kan også repræsentere positiv og negativ uendelighed og NaN (Ikke et tal). |
Double.Type |
Repræsenterer et flydende tal med dobbelt præcision. Det har et omtrentligt interval på –1,7976931348623158 X 10307 til 1,7976931348623158 X 10307 og understøtter ca. 17 cifre præcision. Det kan også repræsentere positiv og negativ uendelighed og NaN (Ikke et tal). |
Guid.Type |
Repræsenterer en 128-bit tekstværdi, der består af 32 hexadecimale værdier ved hjælp af formfaktoren for <8 heksede værdier>-<4 hexadecimale værdier>-<4 hexadecimale værdier>-<4 hexadecimale værdier>-<12 hexværdier>, som udgør GUID-værdien. |
none |
Den datatype, der ikke klassificerer nogen værdier. |
De eneste andre almindeligt anvendte *.Type
værdier er optællinger. Du kan få flere oplysninger ved at gå til Optællinger.
Typekonvertering
M-formelsproget i Power Query indeholder formler, der skal konverteres mellem typer. Følgende er en oversigt over konverteringsformler i M.
Nummer
Typekonvertering | Beskrivelse |
---|---|
Number.FromText(tekst som tekst) som tal | Returnerer en talværdi fra en tekstværdi. |
Number.ToText(tal som tal) som tekst | Returnerer en tekstværdi fra en talværdi. |
Number.From(værdi som vilkårlig) som tal | Returnerer en talværdi fra en værdi. |
Byte.From(værdi som vilkårlig) som tal | Returnerer en 8-bit heltalsværdi ud fra den angivne værdi. |
Int8.From(værdi som vilkårlig) som tal | Returnerer en 8-bit heltalsværdi ud fra den angivne værdi. |
Int16.From(værdi som vilkårlig) som tal | Returnerer en 16-bit heltalsværdi ud fra den angivne værdi. |
Int32.From(værdi som vilkårlig) som tal | Returnerer en 32-bit heltalsværdi ud fra den angivne værdi. |
Int64.From(værdi som vilkårlig) som tal | Returnerer en 64-bit heltalsværdi ud fra den angivne værdi. |
Single.From(værdi som vilkårlig) som tal | Returnerer en værdi af typen Enkelt tal fra den angivne værdi. |
Double.From(værdi som vilkårlig) som tal | Returnerer en værdi med et dobbelt tal fra den angivne værdi. |
Decimal.From(værdi som vilkårlig) som tal | Returnerer en decimaltalsværdi ud fra den angivne værdi. |
Currency.From(værdi som vilkårlig) som tal | Returnerer en værdi af typen Currency number fra den angivne værdi. |
Percentage.From(værdi som vilkårlig) som tal | Returnerer en værdi af typen Percentage number fra den angivne værdi. |
SMS-besked
Typekonvertering | Beskrivelse |
---|---|
Text.From(værdi som vilkårlig) som tekst | Returnerer tekstrepræsentationen af et tal, en dato, et klokkeslæt, en datetimezone, en logisk værdi, en varighed eller en binær værdi. |
Guid.From(værdi som tekst) som tekst | Returnerer GUID-repræsentationen af den angivne tekst. |
Logisk
Typekonvertering | Beskrivelse |
---|---|
Logical.FromText(tekst som tekst) som logisk | Returnerer en logisk værdi af typen true eller false fra en tekstværdi. |
Logical.ToText(logisk som logisk) som tekst | Returnerer en tekstværdi fra en logisk værdi. |
Logical.From(værdi som enhver) som logisk | Returnerer en logisk værdi fra en værdi. |
Date, Time, DateTime og DateTimeZone
Typekonvertering | Beskrivelse |
---|---|
. FromText(tekst som tekst) som dato, klokkeslæt, datetime eller datetimezone | Returnerer en dato-, klokkeslæts-, datetime- eller datetimezone-værdi ud fra et sæt datoformater og kulturværdier. |
. ToText(dato, klokkeslæt, dateTime eller dateTimeZone som dato, klokkeslæt, datetime eller datetimezone) som tekst | Returnerer en tekstværdi fra en dato-, klokkeslæts-, datetime- eller datetimezone-værdi. |
. From(værdi som enhver) | Returnerer en værdi for dato, klokkeslæt, datetime eller datetimezone fra en værdi. |
. ToRecord(dato, klokkeslæt, dateTime eller dateTimeZone som dato, klokkeslæt, datetime eller datetimezone) | Returnerer en post, der indeholder dele af en dato-, klokkeslæts-, datetime- eller datetimezone-værdi. |