Sdílet prostřednictvím


Typy a převod typů

Power Query M používá typy ke klasifikaci hodnot, aby měly strukturovanější datovou sadu. Tento článek popisuje nejčastěji používané typy M a způsob převodu jednoho typu na jiný typ.

Běžně používané typy

Datové typy odkazují na libovolný typ, který se používá k objasnění struktury konkrétních dat. Nejčastěji používané datové typy jsou primitivní typy. Mezi tyto typy patří:

  • type any, který klasifikuje libovolnou hodnotu.
  • type null, který klasifikuje nulovou hodnotu.
  • type logical, který klasifikuje hodnoty true a false.
  • type number, který klasifikuje číselné hodnoty.
  • type time, který klasifikuje časové hodnoty.
  • type date, který klasifikuje hodnoty dat.
  • type datetime, který klasifikuje hodnoty data a času.
  • type datetimezone, který klasifikuje hodnoty datetimezone.
  • type duration, který klasifikuje hodnoty doby trvání.
  • type text, který klasifikuje textové hodnoty.
  • type binary, který klasifikuje binární hodnoty.
  • type type, který klasifikuje hodnoty typu.
  • type list, který klasifikuje hodnoty seznamu.
  • type record, který klasifikuje hodnoty záznamů.
  • type table, který klasifikuje hodnoty tabulky.
  • type function, který klasifikuje hodnoty funkce.
  • type anynonnull, který klasifikuje všechny hodnoty s výjimkou null.
  • type none, který neklasifikuje žádné hodnoty.

Další informace o těchto typech najdete v tématu Typy.

Kromě těchto běžných datových typů existuje také sada datových typů pomocí formátu *.Type. Nejčastěji používané datové typy tohoto formátu jsou:

  • Byte.Type, který klasifikuje hodnotu 8bitového čísla.
  • Int8.Type, který klasifikuje hodnotu 8bitového čísla.
  • Int16.Type, která klasifikuje hodnotu 16bitového čísla.
  • Int32.Type, který klasifikuje 32bitovou číselnou hodnotu.
  • Int64.Type, který klasifikuje hodnotu 64bitového čísla.
  • Single.Type, která klasifikuje 9místné číslo s plovoucí desetinnou čárkou.
  • Double.Type, která klasifikuje 17místnou hodnotu s plovoucí desetinnou čárkou.
  • Decimal.Type, které klasifikuje 15místné číslo s pohyblivou desetinnou čárkou.
  • Currency.Type, který klasifikuje 19místnou číselnou hodnotu se čtyřmi číslicemi vpravo od oddělovače ".
  • Percentage.Type, který klasifikuje 15místnou číselnou hodnotu maskou pro formátování hodnoty jako procenta.
  • Guid.Type, který klasifikuje textovou hodnotu GUID.

Primitivní typy lze také zapsat ve formátu *.Type. Proto můžete psát number jako Number.Type, record jako Record.Typeatd.

Když použijete některý z těchto typů, mějte na paměti, že podobně jako u všech kódů M se rozlišují malá a velká písmena.

Následující tabulka obsahuje další informace o každém z těchto typů.

Datový typ Popis
any Datový typ any je stav zadaný v případech, kdy hodnota nemá explicitní definici datového typu. Typ any je datový typ, který klasifikuje všechny hodnoty.
binary Datový typ binary lze použít k reprezentaci jiných dat s binárním formátem.
type Hodnota, která klasifikuje jiné hodnoty. Další informace najdete v části Typy.
null Představuje absenci hodnoty nebo hodnoty neurčitého nebo neznámého stavu.
anynonnull Představuje libovolný typ, který je nenulovatelný.
date Představuje pouze datum (bez časového úseku).
time Představuje pouze čas (bez části data).
datetime Představuje hodnotu data i času. Časová část data je uložena jako zlomek na celé násobky 1/300 sekund (3,33 ms). Podporují se data mezi roky 1900 a 9999.
datetimezone Představuje datum a čas UTC s posunem časového pásma.
duration Představuje dobu trvání. Tento typ lze přidat nebo odečíst z pole datetime se správnými výsledky. Další informace najdete na Doba trvání.
text Datový řetězec znaků Unicode. Můžou to být řetězce, čísla nebo kalendářní data reprezentovaná v textovém formátu. Maximální délka řetězce je 268 435 456 znaků Unicode (kde každý znak Unicode je dva bajty) nebo 536 870 912 bajtů.
logical Booleovská hodnota true nebo false.
list Hodnota, která při výčtu vytvoří sekvenci hodnot. Další informace najdete v tématu Typy seznamů a Seznam hodnot .
record Seřazená posloupnost polí. Každé pole obsahuje název pole a hodnotu pole. Další informace najdete v tématu Typy záznamů a Hodnoty záznamů.
table Seřazená posloupnost řádků rozdělených do sloupců. Další informace najdete v druzích tabulek a hodnotách tabulek.
function Hodnota, která mapuje sadu argumentů na jednu hodnotu. Další informace najdete v části Functions a typy funkcí .
number Představuje libovolné číslo používané pro číselné a aritmetické operace. Pro více informací přejděte na .
Decimal.Type Představuje 64bitové číslo s plovoucí řádovou čárkou (osm bajtů). Jedná se o nejběžnější typ čísla a odpovídá číslům, jak si je obvykle myslíte. I když je navržený tak, aby zpracovával čísla s desetinnými hodnotami, zpracovává také celá čísla. Decimal.Type dokáže zpracovat záporné hodnoty od -1,79E +308 do –2,23E –308, 0 a kladné hodnoty od 2,23E –308 do 1,79E + 308. Například čísla jako 34, 34,01 a 34,000367063 jsou platná desetinná čísla. Největší přesnost, kterou lze reprezentovat v Decimal.Type, je 15 číslic dlouhé. Oddělovač desetinných míst může nastat kdekoli v čísle. Decimal.Type odpovídá způsobu, jakým Excel ukládá čísla. Všimněte si, že binární číslo s plovoucí desetinou čárkou nemůže představovat všechna čísla v podporovaném rozsahu s přesností 100%. Menší rozdíly v přesnosti proto mohou nastat při reprezentaci určitých desetinných čísel.
Currency.Type Tento datový typ má pevné umístění oddělovače desetinných míst. Oddělovač desetinných míst má vždy napravo čtyři číslice a umožňuje 19 významných číslic. Největší hodnota, kterou může představovat, je 922 337 203 685 477,5807 (kladné nebo záporné). Na rozdíl od Decimal.Typeje Currency.Type vždy přesný a je tedy užitečný v případech, kdy nepřesnost zápisu s plovoucí desetinou čárkou může představovat chyby.
Percentage.Type V zásadě je to stejné jako Decimal.Type, ale má masku pro formátování hodnot jako procentuální hodnoty.
Int8.Type Představuje 8bitovou celočíselnou hodnotu (jednobajtů). Vzhledem k tomu, že se jedná o celé číslo, nemá číslice napravo od desetinného místa. Umožňuje 3 číslice; kladné nebo záporné celé číslo mezi –128 a 127. Stejně jako u Currency.Typemůže být Int8.Type užitečné v případech, kdy potřebujete ovládat zaokrouhlování.
Int16.Type Představuje 16bitovou celočíselnou hodnotu se dvěma bajty. Vzhledem k tomu, že se jedná o celé číslo, nemá číslice napravo od desetinného místa. Umožňuje 6 číslic; kladné nebo záporné celé číslo mezi –32 768 (–2^15) a 32 767 (2^15-1). Stejně jako u Currency.Typemůže být Int16.Type užitečné v případech, kdy potřebujete ovládat zaokrouhlování.
Int32.Type Představuje 32bitovou (čtyřbajtů) celočíselnou hodnotu. Vzhledem k tomu, že se jedná o celé číslo, nemá číslice napravo od desetinného místa. Umožňuje 10 číslic; kladné nebo záporné celé číslo mezi –2 147 483 648 (–2^31) a 2 147 483 647 (2^31–1). Stejně jako u Currency.Typemůže být Int32.Type užitečné v případech, kdy potřebujete ovládat zaokrouhlování.
Int64.Type 64bitová (osmibajtová) hodnota celého čísla se znaménkem. Vzhledem k tomu, že se jedná o celé číslo, nemá číslice napravo od desetinného místa. Umožňuje 19 číslic; kladné nebo záporné celé číslo mezi –9 223 372 036 854 775 808 (–2^63) a 9 223 372 036 854 775 807 (2^63–1). Může představovat největší možnou přesnost různých číselných datových typů. Stejně jako u Currency.Typemůže být Int64.Type užitečné v případech, kdy potřebujete ovládat zaokrouhlování.
Byte.Type Představuje 8bitovou (jednobajtů) celočíselnou hodnotu bez znaménka. Vzhledem k tomu, že se jedná o celé číslo bez znaménka, neobsahuje číslice napravo od desetinného místa a může obsahovat pouze kladné hodnoty. Umožňuje 3 číslice; kladné číslo mezi 0 a 255.
Single.Type Představuje číslo s plovoucí desetinnou čárkou s jednoduchou přesností. Má přibližný rozsah –3,99 X 1038 až 3,99 X 1038 a podporuje přibližně 9 číslic přesnosti. Může také představovat kladné a záporné nekonečno a NaN (Ne číslo).
Double.Type Představuje číslo s plovoucí desetinnou čárkou s dvojitou přesností. Má přibližný rozsah –1,7976931348623158 X 10307 až 1,7976931348623158 X 10307 a podporuje přibližně 17 číslic přesnosti. Může také představovat kladné a záporné nekonečno a NaN (Ne číslo).
Guid.Type Představuje 128bitovou textovou hodnotu skládající se z 32 šestnáctkových hodnot využívajících <8 šestnáctkových hodnot>-<4 šestnáctkové hodnoty>-<4 šestnáctkové hodnoty>-<4 šestnáctkové hodnoty>-<12 šestnáctkových hodnot>, které tvoří hodnotu GUID.
none Datový typ, který klasifikuje žádné hodnoty.

Jedinými dalšími běžně používanými *.Type hodnotami jsou výčty. Další informace najdete v tématu Výčty.

Převod typu

Jazyk vzorců Power Query M obsahuje vzorce pro převod mezi typy. Následuje souhrn vzorců převodu v jazyce M.

Počet

Převod typu Popis
Number.FromText(text jako text) jako číslo Vrátí číselnou hodnotu z textové hodnoty.
Number.ToText(jako číslo) jako text Vrátí textovou hodnotu z číselné hodnoty.
Number.From(hodnota jako jakékoli) jako číslo Vrátí číselnou hodnotu z hodnoty.
Byte.From(hodnota jako jakékoli) jako číslo Vrátí 8bitovou celočíselnou hodnotu z dané hodnoty.
Int8.From(hodnota jako jakékoli) jako číslo Vrátí 8bitovou celočíselnou hodnotu z dané hodnoty.
Int16.From(hodnota jako jakékoli) jako číslo Vrátí 16bitovou celočíselnou hodnotu z dané hodnoty.
Int32.From(hodnota jako jakékoli) jako číslo Vrátí 32bitovou celočíselnou hodnotu z dané hodnoty.
Int64.From(hodnota jako jakékoli) jako číslo Vrátí 64bitovou celočíselnou hodnotu z dané hodnoty.
Single.From(hodnota jako jakékoli) jako číslo Vrátí hodnotu s jedním číslem z dané hodnoty.
Double.From(hodnota jako jakékoli) jako číslo Vrátí hodnotu typu Double číslo z dané hodnoty.
Decimal.From(hodnota jako jakékoli) jako číslo Vrátí hodnotu desetinného čísla z dané hodnoty.
Currency.From(hodnota jako jakékoli) jako číslo Vrátí hodnotu čísla měny z dané hodnoty.
Percentage.From(hodnota jako jakékoli) jako číslo Vrátí hodnotu procentuálního čísla z dané hodnoty.

Text

Převod typu Popis
Text.From(hodnota libovolného typu) jako text Vrátí textovou reprezentaci čísla, data, času, data a času, datetimezone, logické hodnoty, doby trvání nebo binární hodnoty.
Guid.From(hodnota jako text) jako text Vrátí reprezentaci identifikátoru GUID zadaného textu.

Logický

Převod typu Popis
Logical.FromText(text jako text) jako logický Vrátí logickou hodnotu true nebo false z textové hodnoty.
Logical.ToText(logická jako logická) jako text Vrátí textovou hodnotu z logické hodnoty.
Logical.From(hodnota libovolného typu) jako logická hodnota Vrátí logickou hodnotu z hodnoty.

Date, Time, DateTime a DateTimeZone

Převod typu Popis
. FromText(text jako text) jako datum, čas, datum a čas nebo datetimezone Vrátí hodnotu date, time, datetime nebo datetimezone ze sady formátů kalendářních dat a hodnoty jazykové verze.
. ToText(date, time, dateTime, or dateTimeZone as date, time, datetime, or datetimezone) jako text Vrátí textovou hodnotu z hodnoty data, času, data a času nebo datetimezone.
. From(value as any) Vrátí hodnotu date, time, datetime nebo datetimezone z hodnoty.
. ToRecord(date, time, dateTime nebo dateTimeZone as date, time, datetime, or datetimezone) Vrátí záznam obsahující části hodnoty data, času, data a času nebo datetimezone.