Megosztás a következőn keresztül:


Típusok és típuskonvertálás

A Power Query M típusokkal osztályozza az értékeket, hogy strukturáltabb adatkészlettel rendelkezzen. Ez a cikk ismerteti a leggyakrabban használt M-típusokat, és azt, hogyan konvertálhat egy típust egy másik típusra.

Gyakran használt típusok

Az adattípusok minden olyan típusra vonatkoznak, amely az adott adatok szerkezetének tisztázására szolgál. A leggyakrabban használt adattípusok primitív típusok. Ezek a típusok a következők:

  • type any, amely bármilyen értéket osztályba sorol.
  • type null, amely a null értéket osztályozza.
  • type logical, amely igaz és hamis értékeket sorol be.
  • type number, amely számértékeket sorol be.
  • type time, amely az időértékeket sorolja be.
  • type date, amely dátumértékeket sorol be.
  • type datetime, amely dátum/idő értékeket sorol be.
  • type datetimezone, amely a datetimezone értékeket sorolja be.
  • type duration, amely az időtartamértékeket sorolja be.
  • type text, amely a szöveges értékeket sorolja be.
  • type binary, amely bináris értékeket sorol be.
  • type type, amely típusértékeket sorol be.
  • type list, amely a listaértékeket sorolja be.
  • type record, amely a rekordértékeket osztályozza.
  • type table, amely a táblaértékeket sorolja be.
  • type function, amely a függvényértékeket sorolja be.
  • type anynonnull, amely a null értéket nem tartalmazó összes értéket osztályozza.
  • type none, amely nem sorol be értékeket.

Ezekről a típusokról további információt Típusokcímű témakörben talál.

Ezen gyakori adattípusok mellett adattípusok is vannak a *.Typeformátumot használva. A formátum leggyakrabban használt adattípusai a következők:

  • Byte.Type, amely egy 8 bites számértéket sorol be.
  • Int8.Type, amely egy 8 bites számértéket sorol be.
  • Int16.Type, amely egy 16 bites számértéket sorol be.
  • Int32.Type, amely egy 32 bites számértéket sorol be.
  • Int64.Type, amely egy 64 bites számértéket sorol be.
  • Single.Type, amely egy 9 jegyű lebegő számértéket sorol be.
  • Double.Type, amely egy 17 jegyű lebegő számértéket sorol be.
  • Decimal.Type, amely egy 15 jegyű lebegő számértéket sorol be.
  • Currency.Type, amely egy 19 jegyű számértéket sorol be négy számjegygel a "." elválasztótól jobbra.
  • Percentage.Type, amely egy 15 jegyű számértéket sorol be maszkkal az érték százalékként való formázásához.
  • Guid.Type, amely a GUID szöveges értéket sorolja be.

A primitív típusok *.Type formátumban is írhatók. Ezért írhat numberNumber.Type, recordRecord.Typestb.

Ha ezek közül bármelyiket használja, vegye figyelembe, hogy az összes M-kódhoz hasonlóan ezek a típusok is megkülönböztetik a kis- és nagybetűket.

Az alábbi táblázat további információkat tartalmaz ezekről a típusokról.

Adattípus Leírás
any Az any adattípus az az állapot, amely akkor van megadva, ha egy érték nem rendelkezik explicit adattípus-definícióval. A any típus az az adattípus, amely az összes értéket osztályozza.
binary A binary adattípus bármely más, bináris formátumú adat megjelenítésére használható.
type Más értékeket osztályozó érték. További információ: Típusok.
null Érték hiányát, vagy meghatározatlan vagy ismeretlen állapotú értéket jelöl.
anynonnull Bármilyen nem nullázható típust jelöl.
date Csak egy dátumot jelöl (nincs idő rész).
time Csak időt jelöl (nincs dátumrész).
datetime Dátum- és időértéket is jelöl. A dátum időrésze 1/300 másodperc (3,33 ms) egész többszöröseinek törtrészeként van tárolva. Az 1900 és 9999 közötti dátumok támogatottak.
datetimezone A UTC dátumot és időt jelöl időzóna-eltolással.
duration Az időtartamot jelöli. Ez a típus hozzáadható vagy kivonható egy datetime mezőből a megfelelő eredményekkel. További információ: Időtartam.
text Unicode karakterlánc adatsor. Lehetnek szövegként ábrázolt karakterláncok, számok vagy dátumok. A sztringek maximális hossza 268 435 456 Unicode-karakter (ahol minden Unicode-karakter két bájt) vagy 536 870 912 bájt.
logical Boolean érték true vagy false.
list Érték, amely számbavételkor értéksorozatot hoz létre. További információkat a Listatípusok, valamint a Listaértékekalatt talál.
record A mezők rendezett sorozata. Minden mező tartalmaz egy mezőnevet és egy mezőértéket. További információ: Rekordtípusok és Rekordértékek.
table Rendezett sorok sorozata, oszlopokra bontva. További információ: Táblázattípusok és Táblaértékek.
function Egy érték, amely egy argumentumkészletet egyetlen értékre képez le. További információ: Függvények és függvénytípusok.
number A numerikus és aritmetikai műveletekhez használt számokat jelöli. További információért menjen a számúponthoz.
Decimal.Type 64 bites (nyolc bájtos) lebegőpontos számot jelöl. Ez a leggyakoribb számtípus, és a számoknak felel meg, ahogy általában gondol rájuk. Bár a törtértékekkel rendelkező számok kezelésére lett tervezve, egész számokat is kezel. A Decimal.Type -1,79E +308––2,23E –308, 0 és 2,23E –308 és 1,79E + 308 közötti negatív értékeket képes kezelni. Például az olyan számok, mint a 34, a 34.01 és a 34.000367063 érvényes tizedesjegyek. A Decimal.Type esetében az előforduló legnagyobb pontosság 15 számjegy hosszú. A decimális elválasztó a szám bármely pontján előfordulhat. A Decimal.Type megegyezik az Excel számainak tárolásával. Vegye figyelembe, hogy a bináris lebegőpontos számok nem jelölhetik a támogatott tartományon belüli összes számot 100% pontossággal. Így kisebb pontosságbeli különbségek fordulhatnak elő bizonyos tizedesjegyek ábrázolásakor.
Currency.Type Ez az adattípus rögzített helyet biztosít a tizedeselválasztóhoz. A tizedesjel mindig négy számjegyből áll jobbra, és 19 számjegynyi pontosságot tesz lehetővé. A legnagyobb érték 922 337 203 685 477 5807 (pozitív vagy negatív). A Decimal.Typeellentétben a Currency.Type mindig pontos, ezért olyan esetekben hasznos, amikor a lebegőpontos jelölés pontatlansága hibákat eredményezhet.
Percentage.Type Alapvetően ugyanaz, mint egy Decimal.Type, de maszkot tartalmaz az értékek százalékos értékként való formázásához.
Int8.Type Egy 8 bites (egy bájtos) aláírt egész számértéket jelöl. Mivel egész szám, nem rendelkezik számjegyekkel a tizedesvessző jobb oldalán. 3 számjegyet tesz lehetővé; pozitív vagy negatív egész szám –128 és 127 között. Ugyanúgy, mint a Currency.Type, a Int8.Type is hasznos lehet olyan esetekben, amikor a kerekítést kell szabályozni.
Int16.Type 16 bites (két bájtos) aláírt egész számértéket jelöl. Mivel egész szám, nem rendelkezik számjegyekkel a tizedesvessző jobb oldalán. 6 számjegyet tesz lehetővé; pozitív vagy negatív egész szám –32 768 (–2^15) és 32 767 (2^15–1) között. Ugyanúgy, mint a Currency.Type, a Int16.Type is hasznos lehet olyan esetekben, amikor a kerekítést kell szabályozni.
Int32.Type 32 bites (négy bájtos) aláírt egész számértéket jelöl. Mivel egész szám, nem rendelkezik számjegyekkel a tizedesvessző jobb oldalán. 10 számjegyet tesz lehetővé; pozitív vagy negatív egész szám –2 147 483 648 (–2^31) és 2 147 483 647 (2^31–1) között. Ugyanúgy, mint a Currency.Type, a Int32.Type is hasznos lehet olyan esetekben, amikor a kerekítést kell szabályozni.
Int64.Type 64 bites (nyolc bájtos) aláírt egész számértéket jelöl. Mivel egész szám, nem rendelkezik számjegyekkel a tizedesvessző jobb oldalán. 19 számjegyet tesz lehetővé; pozitív vagy negatív egész szám –9 223 372 036 854 775 808 (–2^63) és 9 223 372 036 854 775 807 (2^63–1). A különböző numerikus adattípusok lehető legnagyobb pontosságát képviselheti. Ugyanúgy, mint a Currency.Type, a Int64.Type is hasznos lehet olyan esetekben, amikor a kerekítést kell szabályozni.
Byte.Type Egy 8 bites (egy bájtos) nem aláírt egész számértéket jelöl. Mivel ez egy aláíratlan egész szám, nem tartalmaz számjegyeket a tizedesvessző jobb oldalán, és csak pozitív értékeket tartalmazhat. 3 számjegyet tesz lehetővé; pozitív szám 0 és 255 között.
Single.Type Egy pontosságú lebegőpontos számot jelöl. Hozzávetőleges tartománya -3,99 X 1038 3,99 X 1038, és körülbelül 9 számjegynyi pontosságot támogat. A pozitív és negatív végtelent és a NaN-t (Nem szám) is jelölheti.
Double.Type Dupla pontosságú lebegőpontos számot jelöl. Körülbelül -1,7976931348623158 X 10307 és 1,7976931348623158 X 10307, és körülbelül 17 számjegynyi pontosságot támogat. A pozitív és negatív végtelent és a NaN-t (Nem szám) is jelölheti.
Guid.Type 128 bites szöveges értéket jelöl, amely 32 hexadecimális értékből áll, <8 hexa érték>-<4 hexa érték>-<4 hexa érték>-<4 hexa érték>-<12 hexa érték>, amelyek a GUID értéket alkotják.
none Az az adattípus, amely nem sorol be értékeket.

Az egyetlen gyakran használt *.Type érték az enumerálás. További információért látogasson el a Felsorolásokoldalra.

Típuskonverzió

A Power Query M képletnyelve képletekkel rendelkezik a típusok közötti konvertáláshoz. Az alábbiakban az M konverziós képleteit összegezzük.

Szám

Típuskonverzió Leírás
Number.FromText(szöveg számként) Számértéket ad vissza egy szöveges értékből.
Number.ToText(mint szám) mint szöveg Szöveges értéket ad vissza egy számértékből.
Number.From(bármely érték) számként Számértéket ad vissza egy értékből.
Byte.From(bármely érték) számként Egy 8 bites egész számértéket ad vissza a megadott értékből.
Int8.From(bármely érték) számként Egy 8 bites egész számértéket ad vissza a megadott értékből.
Int16.From(bármely érték) számként 16 bites egész számértéket ad vissza a megadott értékből.
Int32.From(bármely érték) számként Egy 32 bites egész számértéket ad vissza a megadott értékből.
Int64.From(bármely érték) számként 64 bites egész számértéket ad vissza a megadott értékből.
Single.From(bármely érték) számként Egyetlen számértéket ad vissza a megadott értékből.
Double.From(bármely érték) számként Dupla számértéket ad vissza a megadott értékből.
Decimal.From(bármely érték) számként Decimális számértéket ad vissza a megadott értékből.
Currency.From(bármely érték) számként Egy pénznemszámértéket ad vissza a megadott értékből.
Percentage.From(bármely érték) számként Százalékos számértéket ad vissza a megadott értékből.

Szöveg

Típuskonverzió Leírás
Text.From(bármely érték) szövegként Egy szám, dátum, idő, datetime, datetimezone, logikai, időtartam vagy bináris érték szöveges ábrázolását adja vissza.
Guid.From(érték szövegként) A megadott szöveg GUID-ábrázolását adja vissza.

Logikai

Típuskonverzió Leírás
Logical.FromText(szöveg szövegként) logikai Igaz vagy hamis logikai értéket ad vissza egy szöveges értékből.
Logical.ToText(logikájuk szerint logikai) szövegként Egy logikai érték szöveges értékét adja vissza.
Logical.From(bármilyen érték) mint logikai Logikai értéket ad vissza egy értékből.

Dátum, idő, datetime és datetimezone

Típuskonverzió Leírás
. FromText(szöveg szövegként) dátumként, időként, dátum/idő vagy dátum/időzónaként Dátum, idő, dátum/idő vagy dátum/időzón értéket ad vissza a dátumformátumok és a kulturális értékek készletéből.
. ToText(date, time, dateTime, or dateTimeZone as date, time, datetime or datetimezone) as date, time, datetime or datetimezone) as text Szöveges értéket ad vissza dátum, idő, dátum/idő vagy datetimezone értékből.
. From(value as any) Dátum, idő, dátum/idő vagy dátum/időzón értéket ad vissza egy értékből.
. ToRecord(date, time, dateTime, or dateTimeZone as date, time, datetime vagy datetimezone) Olyan rekordot ad vissza, amely a dátum, az idő, a dátum/idő vagy a datetimezone érték részeit tartalmazza.