Delen via


Typen en typeconversie

Power Query M gebruikt typen om waarden te classificeren voor een meer gestructureerde gegevensset. In dit artikel worden de meest gebruikte M-typen beschreven en wordt beschreven hoe u het ene type converteert naar een ander type.

Veelgebruikte typen

Gegevenstypen verwijzen naar elk type dat wordt gebruikt om de structuur van specifieke gegevens te verduidelijken. De meest gebruikte gegevenstypen zijn primitieve typen. Deze typen zijn onder andere:

  • type any, waarmee een willekeurige waarde wordt classificeerd.
  • type null, waarmee de null-waarde wordt geclassificeerd.
  • type logical, waarmee de waarden waar en onwaar worden geclassificeerd.
  • type number, waarmee getalwaarden worden geclassificeerd.
  • type time, waarmee tijdwaarden worden geclassificeerd.
  • type date, waarmee datumwaarden worden geclassificeerd.
  • type datetime, waarmee datum/tijd-waarden worden geclassificeerd.
  • type datetimezone, waarmee datum/tijdzone-waarden worden geclassificeerd.
  • type duration, waarmee duurwaarden worden geclassificeerd.
  • type text, waarmee tekstwaarden worden geclassificeerd.
  • type binary, waarmee binaire waarden worden geclassificeerd.
  • type type, waarmee typewaarden worden geclassificeerd.
  • type list, waarmee lijstwaarden worden geclassificeerd.
  • type record, waarmee recordwaarden worden geclassificeerd.
  • type table, waarmee tabelwaarden worden geclassificeerd.
  • type function, waarmee functiewaarden worden geclassificeerd.
  • type anynonnull, waarmee alle waarden worden geclassificeerd, met uitzondering van null.
  • type none, waarmee geen waarden worden geclassificeerd.

Ga naar Typenvoor meer informatie over deze typen.

Naast deze algemene gegevenstypen is er ook een set gegevenstypen met behulp van de indeling *.Type. De meest gebruikte gegevenstypen van deze indeling zijn:

  • Byte.Type, die een 8-bits getalwaarde classificeert.
  • Int8.Type, die een 8-bits getalwaarde classificeert.
  • Int16.Type, waarmee een 16-bits getalwaarde wordt classificeerd.
  • Int32.Type, waarmee een 32-bits getalwaarde wordt classificeerd.
  • Int64.Type, waarmee een 64-bits getalwaarde wordt classificeerd.
  • Single.Type, waarmee een 9-cijferige zwevende getalwaarde wordt classificeerd.
  • Double.Type, waarmee een 17-cijferige zwevende getalwaarde wordt classificeerd.
  • Decimal.Type, waarmee een 15-cijferige zwevende getalwaarde wordt classificeerd.
  • Currency.Type, waarmee een getalwaarde van 19 cijfers wordt classificeerd met vier cijfers rechts van het scheidingsteken '.'
  • Percentage.Type, waarmee een getalwaarde van 15 cijfers wordt ingedeeld met een masker om de waarde als percentage op te maken.
  • Guid.Type, waarmee een GUID-tekstwaarde wordt classificeerd.

De primitieve typen kunnen ook worden geschreven in het *.Type-formaat. Daarom kunt u number schrijven als Number.Type, record als Record.Type, enzovoort.

Wanneer u een van deze typen gebruikt, moet u er rekening mee houden dat deze typen, net als alle M-code, hoofdlettergevoelig zijn.

De volgende tabel bevat meer informatie over elk van deze typen.

Gegevenstype Beschrijving
any Het any gegevenstype is de status die wordt opgegeven wanneer een waarde geen expliciete definitie van het gegevenstype heeft. Het any type is het gegevenstype waarmee alle waarden worden geclassificeerd.
binary Het binary gegevenstype kan worden gebruikt om andere gegevens weer te geven met een binaire indeling.
type Een waarde die andere waarden classificeert. Ga naar Typenvoor meer informatie.
null Vertegenwoordigt het ontbreken van een waarde of een waarde van onbepaalde of onbekende status.
anynonnull Vertegenwoordigt elk type dat niet-nullbaar is.
date Vertegenwoordigt alleen een datum (geen tijdgedeelte).
time Vertegenwoordigt alleen tijd (geen datumgedeelte).
datetime Vertegenwoordigt zowel een datum- als tijdwaarde. Het tijdgedeelte van een datum wordt opgeslagen als een breuk van gehele veelvouden van 1/300 seconden (3,33 ms). Datums tussen de jaren 1900 en 9999 worden ondersteund.
datetimezone Vertegenwoordigt een UTC-datum en -tijd met een tijdzone-offset.
duration Vertegenwoordigt een tijdsduur. Dit type kan worden toegevoegd aan of afgetrokken van een datetime veld met de juiste resultaten. Ga naar Duurvoor meer informatie.
text Een Unicode-tekenreeks. Dit kunnen tekenreeksen, getallen of datums zijn die in een tekstopmaak worden weergegeven. De maximale tekenreekslengte is 268.435.456 Unicode-tekens (waarbij elk Unicode-teken twee bytes is) of 536.870.912 bytes.
logical Een Booleaanse waarde van true of false.
list Een waarde die een reeks waarden produceert wanneer deze worden opgesomd. Ga naar lijsttypen en lijstwaardenvoor meer informatie.
record Een geordende reeks velden. Elk veld bevat een veldnaam en veldwaarde. Ga naar Recordtypen en Recordwaardenvoor meer informatie.
table Een geordende reeks rijen die zijn onderverdeeld in kolommen. Ga voor meer informatie naar tabeltypen en tabelwaarden.
function Een waarde waarmee een set argumenten wordt toegewezen aan één waarde. Ga voor meer informatie naar Functies en Functietypen.
number Vertegenwoordigt een willekeurig getal dat wordt gebruikt voor numerieke en rekenkundige bewerkingen. Ga naar Nummervoor meer informatie.
Decimal.Type Vertegenwoordigt een 64-bits (acht-byte) drijvendekommagetal. Dit is het meest voorkomende numerieke type en komt overeen met getallen zoals u ze meestal vindt. Hoewel het is ontworpen om getallen met breukwaarden te verwerken, worden ook gehele getallen verwerkt. De Decimal.Type kan negatieve waarden verwerken van –1,79E +308 tot en met –2,23E –308, 0 en positieve waarden van 2,23E –308 tot en met 1,79E + 308. Getallen zoals 34, 34,01 en 34.000367063 zijn bijvoorbeeld geldige decimale getallen. De grootste precisie die in een Decimal.Type kan worden weergegeven, is 15 cijfers lang. Het decimaalteken kan overal in het getal voorkomen. De Decimal.Type komt overeen met de wijze waarop excel de getallen opslaat. Houd er rekening mee dat een binair drijvendekommagetal niet alle getallen binnen het ondersteunde bereik kan vertegenwoordigen met 100% nauwkeurigheid. Kleine verschillen in precisie kunnen dus optreden bij het weergeven van bepaalde decimale getallen.
Currency.Type Dit gegevenstype heeft een vaste locatie voor het decimaalteken. Het decimaalteken heeft altijd vier cijfers aan de rechterkant en maakt 19 significante cijfers mogelijk. De grootste waarde die het kan vertegenwoordigen, is 922.337.203.685.477,5807 (positief of negatief). In tegenstelling tot Decimal.Typeis de Currency.Type altijd nauwkeurig en is het dus nuttig in gevallen waarin de onnauwkeurigheid van de drijvendekomma-notatie fouten kan veroorzaken.
Percentage.Type In principe hetzelfde als een Decimal.Type, maar het heeft een masker voor het opmaken van de waarden als een percentagewaarde.
Int8.Type Vertegenwoordigt een 8-bits (een-byte) ondertekende geheel getalwaarde. Omdat het een geheel getal is, heeft het geen cijfers rechts van de decimale plaats. Het maakt 3 cijfers mogelijk; een positief of negatief geheel getal tussen –128 en 127. Net als bij de Currency.Typekan de Int8.Type handig zijn in gevallen waarin je afronding moet beheren.
Int16.Type Vertegenwoordigt een 16-bits (twee-byte) geheel getal met teken. Omdat het een geheel getal is, heeft het geen cijfers rechts van de decimale plaats. Het maakt 6 cijfers mogelijk; een positief of negatief geheel getal tussen –32.768 (-2^15) en 32.767 (2^15-1). Net als bij de Currency.Typekan de Int16.Type handig zijn in gevallen waarin je afronding moet beheren.
Int32.Type Vertegenwoordigt een 32-bits (vier-byte) ondertekende geheel getalwaarde. Omdat het een geheel getal is, heeft het geen cijfers rechts van de decimale plaats. Het maakt 10 cijfers mogelijk; een positief of negatief geheel getal tussen –2.147.483.648 (–2^31) en 2.147.483.647 (2^31-1). Net als bij de Currency.Typekan de Int32.Type handig zijn in gevallen waarin je afronding moet beheren.
Int64.Type Vertegenwoordigt een 64-bits (acht bytes) getekende geheel getalwaarde. Omdat het een geheel getal is, heeft het geen cijfers rechts van de decimale plaats. Het maakt 19 cijfers mogelijk; een positief of negatief geheel getal tussen –9.223.372.036.854.775.808 (–2^63) en 9.223.372.036.854.775.807 (2^63-1). Het kan de grootst mogelijke precisie van de verschillende numerieke gegevenstypen vertegenwoordigen. Net als bij de Currency.Typekan de Int64.Type handig zijn in gevallen waarin je afronding moet beheren.
Byte.Type Vertegenwoordigt een 8-bits (one-byte) ongetekend geheel getal. Omdat het een niet-ondertekend geheel getal is, heeft het geen cijfers rechts van de decimale plaats en kan het alleen positieve waarden bevatten. Het maakt 3 cijfers mogelijk; een positief getal tussen 0 en 255.
Single.Type Vertegenwoordigt een drijvendekommagetal met enkele precisie. Het heeft een bereik van -3,99 X 1038 tot 3,99 X 1038 en ondersteunt ongeveer 9 cijfers precisie. Het kan ook positieve en negatieve oneindigheid vertegenwoordigen, en NaN (geen getal).
Double.Type Vertegenwoordigt een drijvendekommagetal met dubbele precisie. Het heeft een geschat bereik van -1,7976931348623158 X 10307 tot 1,7976931348623158 X 10307 en ondersteunt ongeveer 17 cijfers precisie. Het kan ook positieve en negatieve oneindigheid vertegenwoordigen, en NaN (geen getal).
Guid.Type Vertegenwoordigt een 128-bits tekstwaarde die bestaat uit 32 hexadecimale waarden met behulp van de vormfactor van <8 hexwaarden>-<4 hexwaarden>-<4 hexwaarden>-<4 hexwaarden>-<12 hexwaarden>, waaruit de GUID-waarde bestaat.
none Het gegevenstype dat geen waarden classificeert.

De enige andere veelgebruikte *.Type waarden zijn opsommingen. Ga naar Opsommingenvoor meer informatie.

Type conversie

De formuletaal Power Query M bevat formules die moeten worden geconverteerd tussen typen. Hier volgt een samenvatting van conversieformules in M.

Aantal

Type conversie Beschrijving
Number.FromText(tekst in tekstvorm) als getal Retourneert een getalwaarde van een tekstwaarde.
Number.ToText(getal als getal) als tekst Retourneert een tekstwaarde van een getalwaarde.
Number.From(waarde als een) als getal Retourneert een getalwaarde van een waarde.
Byte.From(waarde als een) als getal Retourneert een 8-bits geheel getalwaarde van de opgegeven waarde.
Int8.From(waarde als een) als getal Retourneert een 8-bits geheel getalwaarde van de opgegeven waarde.
Int16.From(waarde als een) als getal Retourneert een 16-bits geheel getalwaarde van de opgegeven waarde.
Int32.From(waarde als een) als getal Retourneert een 32-bits geheel getalwaarde van de opgegeven waarde.
Int64.From(waarde als een) als getal Retourneert een 64-bits geheel getalwaarde van de opgegeven waarde.
Single.From(waarde als een) als getal Retourneert één getalwaarde van de opgegeven waarde.
Double.From(waarde als een) als getal Retourneert een dubbele getalwaarde van de opgegeven waarde.
Decimal.From(waarde als een) als getal Retourneert een decimale getalwaarde van de opgegeven waarde.
Currency.From(waarde als een) als getal Retourneert een valutanummerwaarde van de opgegeven waarde.
Percentage.From(waarde als een) als getal Retourneert een percentage getalwaarde van de opgegeven waarde.

Sms verzenden

Type conversie Beschrijving
Text.From(waarde als willekeurige waarde) als tekst Retourneert de tekstweergave van een getal, datum, tijd, datum/tijd, datum/tijdzone, logische, duur of binaire waarde.
Guid.From(waarde als tekst) als tekst Retourneert de GUID-weergave van de opgegeven tekst.

Logisch

Type conversie Beschrijving
Logical.FromText(tekst als tekst) als logisch Retourneert een logische waarde van waar of onwaar van een tekstwaarde.
Logical.ToText(logisch als logisch) als tekst Retourneert een tekstwaarde van een logische waarde.
Logical.From(waarde als willekeurig) als logisch Retourneert een logische waarde van een waarde.

Date, Time, DateTime en DateTimeZone

Type conversie Beschrijving
. FromText(tekst als tekst) als datum, tijd, datum/tijd of datetimezone Retourneert een datum-, tijd-, datum/tijd- of datum/tijdzone-waarde uit een set datumnotaties en cultuurwaarde.
. ToText(datum, tijd, datum/tijd of dateTimeZone als datum, tijd, datum/tijd of datetimezone) als tekst Retourneert een tekstwaarde van een datum-, tijd-, datum/tijd- of datetimezone-waarde.
. From(value as any) Retourneert een datum-, tijd-, datum/tijd- of datetimezone-waarde van een waarde.
. ToRecord(date, time, dateTime of dateTimeZone as date, time, datetime, or datetimezone) Retourneert een record met onderdelen van een datum-, tijd-, datum/tijd- of datum/tijdzonewaarde.