Power Query 中的資料型別用於分類數值,使其資料集更具結構化。 數據類型是在欄位層級定義,欄位內的值會設定為 符合 欄位的數據類型。
數據行的數據類型會顯示在數據行標題的左側,並具有符號化數據類型的圖示。
備註
Power Query 提供一組基於欄位資料型態的上下文轉換與選項。 例如,當您選取資料類型為 Date 的數據行時,您會取得套用至該特定資料類型的轉換和選項。 這些轉換與選項遍布 Power Query 介面,例如
Power Query 中最常見的資料型態列於下表。 雖然超出本文範圍,但你可以在 Power Query M Types and type conversion 文章中找到常用資料型態清單。 Power Query M 公式語言Types 文章中也有完整的資料型別清單。
| 數據類型 | 圖標 | 說明 |
|---|---|---|
| Text |
|
Unicode 字元數據字串。 可以是以文字格式表示的字串、數位或日期。 字串長度上限為 268,435,456 個 Unicode 字元(其中每個 Unicode 字元為 2 個字節)或 536,870,912 個字節。 |
| True/False |
|
True 或 False 的布爾值。 |
| 十進位數 |
|
表示 64 位 (八位元組) 浮點數。 這是最常見的數字類型,且與您通常想像的數字相對應。 雖然設計用來處理分數值的數位,但它也會處理整數。 十進位數類型可以處理從 –1.79E +308 到 –2.23E –308、0 和 2.23E –308 到 1.79E + 308 的負值。 例如,34、34.01 和 34.000367063 等數位是有效的十進位數。 在十進位數值類型中可以表示的最大精確度為15位數。 小數分隔符可以在數位中的任何位置發生。 十進位數字類型對應 Excel 儲存數字的方式。 二進位浮點數無法以100% 的準確率代表其支援範圍內的所有數字。 因此,代表特定十進位數時,可能會發生精確度的次要差異。 |
| 固定的十進位數 |
|
也稱為 Currency 類型,此數據類型具有小數分隔符的固定位置。 小數分隔符的右邊一律有四位數,並允許 19 位數的顯著性。 它可以表示的最大值為 922,337,203,685,477.5807(正數或負數)。 與 Decimal Number 不同,固定十進位數類型一律精確,因此在浮點表示法不精確可能會造成錯誤的情況下很有用。 |
| 整數 |
|
表示 64 位 (八位元組) 整數值。 因為它是整數,所以在小數點右邊沒有數字。 它允許 19 位數;正或負整數介於 –9,223,372,036,854,775,808(–2^63)與 9,223,372,036,854,775,807(2^63–1)。 它可以代表各種數值數據類型的最大可能精度。 如同固定十進位數類型,當您需要控制四捨五入時,整數類型就很有用。 |
| 百分比 |
|
基本上和十進位數字類型相同,但它有一個遮罩功能,可以在 Power Query 編輯器 視窗中將欄位中的值格式化成百分比。 |
| 日期/時間 |
|
表示日期和時間值。 實際上,日期/時間值會儲存為十進位數類型,因此您可以實際在兩者之間轉換。 日期的時間部分會以 1/300 秒(3.33 毫秒)的倍數分數形式儲存。 支援 1900 年至 9999 年之間的日期。 |
| 日期 |
|
只代表日期(沒有時間部分)。 當轉換成模型時,Date 與小數部分為零的 Date/Time 值相同。 |
| 時間 |
|
僅表示時間(不包括日期部分)。 在模型中解讀時,Time 值與日期/時間值相同,只是小數點左邊沒有數字。 |
| 日期/時間/時區 |
|
表示具有時區位移的UTC日期/時間。 當載入模型時,它會轉換成日期/時間。 |
| 期間 |
|
表示載入模型時,會轉換成十進位數類型的時間長度。 作為十進位數字類型,它可以與日期/時間欄位相加或減去,並產生正確的結果。 因為它是十進位數類型,所以您可以在顯示大小視覺效果中輕鬆使用它。 |
| 二進制 |
|
Binary 數據類型可用來表示任何其他具有二進位格式的數據。 |
| 任何 |
|
Any 數據類型是提供給沒有明確數據類型定義之數據行的狀態。 任何是分類所有值的數據類型。 建議您一律明確定義來自非結構化來源之查詢的數據行數據類型。 此外,請避免在查詢的輸出中使用任何具有 'Any' 資料類型的欄位。 |
數據類型偵測
連接到下列專案時,會自動偵測資料類型:
結構化資料來源,例如資料庫,Power Query 會從資料來源讀取資料表結構,並透過每欄的正確資料型態自動顯示資料。
非結構化來源,如Excel、CSV 和文字檔,Power Query 會透過檢查資料表中的值來自動偵測資料型態。 預設情況下,Power Query 對非結構化來源啟用自動資料型別偵測。
您也可以在 [轉換] 索引標籤的 [任何資料行] 群組中使用 [偵測數據類型] 命令,自動偵測數據表中數據行的數據類型。
如何定義欄位資料類型
您可以在四個位置中定義或變更資料行的資料類型:
在 Home 標籤中、Transform 群組中、資料類型 下拉選單中。
在 Transform 標籤中,在 任何欄位 群組的 資料類型 下拉選單中,
選取數據列標題左側的圖示。
在欄快捷方式功能表中變更類型下。
自動偵測數據行數據類型和標頭
此設定特別適用於非結構化來源。 其可協助您根據數據表的前 200 個數據列自動檢查和偵測數據行類型和標頭。 啟用此設定後,Power Query 會自動在查詢中新增兩個步驟:
- 升級數據行標頭:將數據表的第一個數據列升階為數據行行首。
- 變更類型:將值從Any數據類型轉換為根據每個欄位中的值檢查後得到的數據類型。
預設會啟用此設定。 要停用或啟用此設定,請依照適用於您 Power Query 體驗的步驟操作。
在 Home 標籤中,選擇 Options,然後在 Project 選項中選擇 Data load。 選取 [自動偵測非結構化來源的數據行類型和標頭 ] 複選框。
在 Power Query Desktop 中設定自動資料類型偵測
你可以在
全域:在 [ 全域] 下方的左窗格中,選取 [ 數據載入]。 在 [類型偵測] 下方的右窗格中,您可以選取三種類型偵測組態中的任何一種,這些組態會套用至應用程式中所建立的每個新檔案:
- 一律偵測非結構化來源的數據行類型和標頭
- 根據每個檔案的設定,偵測非結構化來源的數據行類型和標頭
- 永不偵測非結構化來源的數據行類型和標頭
目前檔案:在 [ 目前檔案] 下方的左窗格中,選取 [ 數據載入]。 在 [ 類型偵測] 下方的右窗格中,選取您要啟用或停用目前檔案的類型偵測。
文件或項目語言區域設定
Power Query 處理兩個不同的元件,分別管理資料的外觀與解讀方式:
- 在地化:告訴 Power Query 應該以哪種語言顯示的元件。
- 全球化:除了文字值的解譯之外,處理值格式設定的元件。
地區設定 是保留當地語系化和全球化元件的單一值。 地區設定可用來解譯文字值,並將其轉換成其他數據類型。 例如,地區設定美式英語(美國)表示本地化是使用美式英語,而全球化,即該數值的格式,則是基於美國使用的標準。
當 Power Query 定義欄位資料型態或從一種資料型態轉換到另一種時,必須先解讀要轉換的值,才能將它們轉換成不同的資料型態。
在Power Query線上版中,這種詮釋定義在Project選項中,區域設定。
在 Power Query Desktop 中,Power Query 會自動辨識你的作業系統區域格式,並用它來解讀資料型別轉換的值。 若要覆寫此地區設定,請開啟 [查詢 選項 ] 視窗,然後在 [ 目前檔案] 下的左窗格中,選取 [ 區域設定]。 您可以從這裡將地區設定變更為您想要的設定。
此地區設定對於將文字值解譯為特定數據類型很重要。 舉例來說,假設你把地區設定為English (美國),但你其中一個 CSV 檔案中的一欄日期格式是英國格式的日期/月份/年份。
當您嘗試將 Date 資料行的數據類型設定為 Date 時,您會收到錯誤值。
這些錯誤發生是因為所使用的地點試圖以英文(美國)格式(月份/日期/年份)來解釋日期。 因為行事曆中沒有第 22 個月,所以會造成錯誤。
而不是只選取[日期]數據類型,您可以滑鼠右鍵點擊該欄標題,選取變更類型,然後選取使用地區設定。
在 [ 使用地區設定變更資料行類型 ] 對話框中,您可以選取您想要設定的數據類型,但您也可以選取要使用的地區設定,在此情況下必須是 英文 (英國) 。
使用這個區域時,Power Query 能正確解讀數值並將這些值轉換成正確的資料型態。
確認最終日期值
全球化值會驅動日期值的格式設定。 如果你對 Power Query 顯示的數值有任何疑慮,可以透過新增日期、月份和年份欄位來驗證日期值的轉換。 若要新增這些新欄,請選取 [日期] 欄,然後移至功能區上的 [ 新增資料行 ] 索引標籤。 在 [日期和時間] 數據行 群組中,會顯示日期數據行的選項。
您可以從這裡擷取日期值的一部分,例如年號、月號、日數,或從 Date 數據行擷取的更多 數據 行。
藉由使用這些資料行,您可以確認日期值已正確轉換。
數據類型轉換矩陣
下列矩陣的設計目的是讓您快速查看從某個數據類型轉換成另一個數據類型之值的數據類型轉換的可行性。
備註
此矩陣中的轉換會從 [資料類型 ] 資料行中的原始數據類型開始。 轉換成新類型的每個結果都會顯示在原始數據類型的數據列中。
| 數據類型 |
|
|
|
|
|
|
|
|
|
|
|
|---|---|---|---|---|---|---|---|---|---|---|---|
十進位數 |
— |
|
|
|
|
|
|
|
|
|
|
貨幣 |
|
— |
|
|
|
|
|
|
|
|
|
整數 |
|
|
— |
|
|
|
|
|
|
|
|
百分比 |
|
|
|
— |
|
|
|
|
|
|
|
日期/時間 |
|
|
|
|
— |
|
|
|
|
|
|
日期 |
|
|
|
|
|
— |
|
|
|
|
|
時間 |
|
|
|
|
|
|
— |
|
|
|
|
日期/時間/時區 |
|
|
|
|
|
|
|
— |
|
|
|
期間 |
|
|
|
|
|
|
|
|
— |
|
|
文字 |
|
|
|
|
|
|
|
|
|
— |
|
真/假 |
|
|
|
|
|
|
|
|
|
|
— |
| 圖標 | 說明 |
|---|---|
|
可能 |
|
不可能 |
|
可能,但它會將值新增至原始值 |
|
可能,但它會截斷原始值 |
Power Query M 中的類型
你可以在 Power Query M Types and type conversion 文章中找到常用資料型別清單。 Power Query M 公式語言Types 文章中也有完整的資料型別清單。