Del via


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.Typeosv.

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.Typeer 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.Typekan 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.Typekan 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.Typekan 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.Typekan 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.