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.Type is 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.Type kan 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.Type kan 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.Type kan 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.Type kan 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. |