Power Query M 會使用類型來分類值,以擁有更結構化的數據集。 本文說明最常用的 M 類型,以及如何將某個類型轉換成另一個類型。
常用的類型
數據類型是指用來釐清特定數據結構的任何類型。 最常使用的資料類型是基本類型。 這些類型包括:
type any
,它會分類任何值。
type null
,其用來分類空值。
type logical
,它會將值分類為 true 和 false。
type number
,它會分類數位值。
type time
,其會分類時間值。
type date
,其會分類日期值。
type datetime
,會分類日期時間值。
type datetimezone
,它會分類 datetimezone 值。
type duration
,其會分類持續時間值。
type text
,它會將文字值分類。
type binary
,它會分類二進位值。
type type
,它會分類類型值。
type list
,它會分類清單值。
type record
,它會分類記錄值。
type table
,它會分類數據表值。
type function
,其會分類函式值。
type anynonnull
,它會分類排除 null 的所有值。
type none
,其不會分類任何值。
如需這些類型的詳細資訊,請移至
Types
。
除了這些常見的資料類型之外,還有一組使用
*.Type
格式的資料類型。 此格式最常使用的資料類型如下:
Byte.Type
,其會分類 8 位數位值。
Int8.Type
,其會分類 8 位數位值。
Int16.Type
,其會分類 16 位數位值。
Int32.Type
,它會分類 32 位數位值。
Int64.Type
,其會分類64位數位值。
Single.Type
,它會分類 9 位數的浮點數值。
Double.Type
,它會分類 17 位數的浮點數值。
Decimal.Type
,它會分類 15 位數的浮點數值。
Currency.Type
,它會將19位數的數位值分類為 「.」 分隔符右邊的四位數。
Percentage.Type
,將15位數的數值使用遮罩進行分類並格式化為百分比。
Guid.Type
,它會分類 GUID 文字值。
基本類型也可以以
*.Type
格式撰寫。 因此,您可以將
number
寫入為
Number.Type
、
record
Record.Type
等等。
當您使用上述任何類型時,請注意,就像所有 M 程式代碼一樣,這些類型會區分大小寫。
下表包含這些類型的詳細資訊。
Unicode 字元數據字串。 可以是以文字格式表示的字串、數位或日期。 字串長度上限為 268,435,456 個 Unicode 字元(其中每個 Unicode 字元都是兩個字節),或 536,870,912 個字節。
logical
布林值為
true
或
false
。
在列舉時能產生一系列值的值。 如需詳細資訊,請移至
清單類型
和
清單值
。
record
已排序的欄位序列。 每個欄位都包含欄位名稱和欄位值。 如需詳細資訊,請移至
記錄類型
和
記錄值
。
table
已排序的數據列序列,分割成數據行。 如需詳細資訊,請移至
資料表類型
和
資料表值
。
function
一個將一組參數映射到單一值的值。 如需詳細資訊,請移至
Functions
和
函式類型
。
number
表示用於數值和算術運算的任何數位。 如需詳細資訊,請前往
。
Decimal.Type
表示 64 位 (八位元組) 浮點數。 這是最常見的數字類型,且與您通常想像的數字相對應。 雖然設計用來處理分數值的數位,但它也會處理整數。
Decimal.Type
可以處理從 –1.79E +308 到 –2.23E –308、0 和 2.23E –308 到 1.79E + 308 的負值。 例如,34、34.01 和 34.000367063 等數位是有效的十進位數。
Decimal.Type
中可表示的最大精度是 15 位數。 小數分隔符可以在數位中的任何位置發生。
Decimal.Type
對應至 Excel 儲存其數位的方式。 請注意,二進位浮點數不能代表其支援範圍內具有100% 精確度的所有數位。 因此,代表特定十進位數時,可能會發生精確度的次要差異。
Currency.Type
此數據類型具有小數分隔符的固定位置。 小數分隔符的右邊一律有四位數,並允許 19 位數的顯著性。 它可以表示的最大值為 922,337,203,685,477.5807(正數或負數)。 不同於
Decimal.Type
,
Currency.Type
一律精確,因此在浮點表示法不精確可能會造成錯誤的情況下很有用。
Percentage.Type
基本上與
Decimal.Type
相同,但它具有遮罩,將值格式化為百分比值。
Int8.Type
表示一個8位元(1位元組)的有符號整數值。 因為它是整數,所以在小數點右邊沒有數字。 它允許3位數;介於 –128 和 127 之間的正數或負整數。 如同
Currency.Type
一樣,當您需要控制四捨五入時,
Int8.Type
會很有用。
Int16.Type
表示16位元(雙位元組)帶符號的整數值。 因為它是整數,所以在小數點右邊沒有數字。 它允許6位數;介於 –32,768 (–2^15) 和 32,767 (2^15-1) 之間的正數或負整數。 如同
Currency.Type
一樣,當您需要控制四捨五入時,
Int16.Type
會很有用。
Int32.Type
表示32位(四位元組)帶正負號的整數值。 因為它是整數,所以在小數點右邊沒有數字。 它允許10位數;介於 –2,147,483,648(–2^31) 和 2,147,483,647 (2^31–1) 之間的正整數或負整數。 如同
Currency.Type
一樣,當您需要控制四捨五入時,
Int32.Type
會很有用。
Int64.Type
表示64位(八位元組)帶正負號的整數值。 因為它是整數,所以在小數點右邊沒有數字。 它允許19位數;介於 –9,223,372,036,854,775,808 (–2^63) 和 9,223,372,036,854,775,807(2^63–1) 之間的正整數。 它可以代表各種數值數據類型的最大可能精度。 如同
Currency.Type
一樣,當您需要控制四捨五入時,
Int64.Type
會很有用。
Byte.Type
表示一個 8 位元的無符號整數值。 因為它是不帶正負號的整數,所以小數點右邊沒有數位,而且只能包含正值。 它允許3位數;介於 0 到 255 之間的正數。
Single.Type
表示單精度浮點數。 其範圍大約為 –3.99 X 10
38
到 3.99 X 10
38
,並具有大約 9 位有效數字的精確度。 它也可以代表正數和負無限大,以及 NaN(不是數位)。
Double.Type
表示雙精度浮點數。 其範圍大約為 –1.7976931348623158 X 10
307
到 1.7976931348623158 X 10
307
,並可支援大約 17 位數的有效數字。 它也可以代表正數和負無限大,以及 NaN(不是數位)。
Guid.Type
代表由 32 個十六進位值組成的 128 位文字值,其採用 <8 十六進位值>-<4 十六進位值>-<4 十六進位值>-<4 十六進位>值<->12 十六進位值,構成 GUID 值。
分類無值的數據類型。
其他唯一常用的
*.Type
值是列舉。 如需詳細資訊,請移至
列舉
。
Power Query M 公式語言包含在類型間進行轉換的公式。 下列是 M 中轉換公式的摘要。
.FromText(text as text) as date、time、datetime 或 datetimezone
從一組日期格式和文化特性值傳回日期、時間、日期時間或日期時區值。
.ToText(date、time、dateTime 或 dateTimeZone as date、time、datetime 或 datetimezone) 作為文字
從日期、時間、日期時間或日期時區值傳回文字值。
.From(value as any)
從值傳回日期、時間、日期時間或日期時區值。
.ToRecord(date、time、dateTime 或 dateTimeZone as date、time、datetime 或 datetimezone)
傳回記錄,其包含日期、時間、日期時間或日期時區值的部分。
Power Query M 類型系統