Power Query 中的數據類型可用來分類值,以擁有更結構化的數據集。 數據類型是在欄位層級定義,欄位內的值會設定為 符合 欄位的數據類型。
數據行的數據類型會顯示在數據行標題的左側,並具有符號化數據類型的圖示。
備註
Power Query 會根據數據行的數據類型,提供一組內容相關轉換和選項。 例如,當您選取資料類型為 Date 的數據行時,您會取得套用至該特定資料類型的轉換和選項。 這些轉換和選項會在整個 Power Query 介面中進行,例如在 [轉換 ] 和 [ 新增數據行 ] 索引標籤和智慧篩選選項上。
下表列出 Power Query 中使用的最常見數據類型。 雖然超出本文的範圍,但您可以在Power Query M 類型和類型轉換 一文中找到常用數據類型的清單。 Power Query M 公式語言 類型 一文中也有完整的數據類型清單。
數據類型 | 圖標 | 說明 |
---|---|---|
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,807(–2^63+1) 和 9,223,372,036,854,775,806 (2^63–2) 之間為正整數或負整數。 它可以代表各種數值數據類型的最大可能精度。 如同固定十進位數類型,當您需要控制四捨五入時,整數類型就很有用。 |
百分比 | ![]() |
基本上與十進位數類型相同,但它具有遮罩,以在Power Query 編輯器視窗中將數據行中的值格式化為百分比。 |
日期/時間 | ![]() |
表示日期和時間值。 實際上,日期/時間值會儲存為十進位數類型,因此您可以實際在兩者之間轉換。 日期的時間部分會以 1/300 秒(3.33 毫秒)的倍數分數形式儲存。 支援 1900 年至 9999 年之間的日期。 |
日期 | ![]() |
只代表日期(沒有時間部分)。 當轉換成模型時,Date 與小數部分為零的 Date/Time 值相同。 |
時間 | ![]() |
僅表示時間(不包括日期部分)。 在模型中解讀時,Time 值與日期/時間值相同,只是小數點左邊沒有數字。 |
日期/時間/時區 | ![]() |
表示具有時區位移的UTC日期/時間。 當載入模型時,它會轉換成日期/時間。 |
期間 | ![]() |
表示載入模型時,會轉換成十進位數類型的時間長度。 作為十進位數字類型,它可以與日期/時間欄位相加或減去,並產生正確的結果。 因為它是十進位數類型,所以您可以在顯示大小視覺效果中輕鬆使用它。 |
二進制 | ![]() |
Binary 數據類型可用來表示任何其他具有二進位格式的數據。 |
任何 | ![]() |
Any 數據類型是提供給沒有明確數據類型定義之數據行的狀態。 任何是分類所有值的數據類型。 建議您一律明確定義來自非結構化來源之查詢的數據行數據類型。 此外,請避免在查詢的輸出中使用任何具有 'Any' 資料類型的欄位。 |
數據類型偵測
連接到下列專案時,會自動偵測資料類型:
結構化數據源,例如資料庫,Power Query 會從數據源讀取數據表架構,並使用每個數據行的正確數據類型自動顯示數據。
Power Query 會藉由檢查數據表中的值,自動偵測數據類型的非結構化來源,例如 Excel、CSV 和文本檔。 根據預設,非結構化來源的Power Query中會啟用自動數據類型偵測。
您也可以在 [轉換] 索引標籤的 [任何資料行] 群組中使用 [偵測數據類型] 命令,自動偵測數據表中數據行的數據類型。
如何定義欄位資料類型
您可以在四個位置中定義或變更資料行的資料類型:
在 [ 首頁 ] 索引標籤的 [ 轉換 ] 群組中,於 [ 數據類型 ] 下拉選單中。
在 轉換 分頁的 任何數據行 群組中,選擇 數據類型 下拉選單。
選取數據列標題左側的圖示。
在欄快捷方式功能表中變更類型下。
自動偵測數據行數據類型和標頭
此設定特別適用於非結構化來源。 其可協助您根據數據表的前 200 個數據列自動檢查和偵測數據行類型和標頭。 啟用此設定時,Power Query 會自動將兩個步驟新增至您的查詢:
- 升級數據行標頭:將數據表的第一個數據列升階為數據行行首。
- 變更類型:將值從Any數據類型轉換為根據每個欄位中的值檢查後得到的數據類型。
預設會啟用此設定。 若要停用或啟用此設定,請遵循套用至 Power Query 體驗的步驟。
在 Power Query Online 中設定自動數據類型偵測
在 [首頁] 索引標籤上,選取 [選項],然後在 [專案] 選項下選取 [數據載入]。 選取 [自動偵測非結構化來源的數據行類型和標頭 ] 複選框。
在 Power Query Desktop 中設定自動數據類型偵測
您可以在 [ 選項 ] 視窗的全域和每個檔案層級定義此行為(在 Power Query 編輯器的 [ 檔案 ] 索引標籤上,選取 [ 選項和設定>選項]。
全域:在 [ 全域] 下方的左窗格中,選取 [ 數據載入]。 在 [類型偵測] 下方的右窗格中,您可以選取三種類型偵測組態中的任何一種,這些組態會套用至應用程式中所建立的每個新檔案:
- 一律偵測非結構化來源的數據行類型和標頭
- 根據每個檔案的設定,偵測非結構化來源的數據行類型和標頭
- 永不偵測非結構化來源的數據行類型和標頭
目前檔案:在 [ 目前檔案] 下方的左窗格中,選取 [ 數據載入]。 在 [ 類型偵測] 下方的右窗格中,選取您要啟用或停用目前檔案的類型偵測。
文件或項目語言區域設定
Power Query 會處理兩個不同的元件,這些元件會管理外觀和解譯的方式:
- 本地化:指示 Power Query 應以何種語言顯示的元件。
- 全球化:除了文字值的解譯之外,處理值格式設定的元件。
地區設定 是保留當地語系化和全球化元件的單一值。 地區設定可用來解譯文字值,並將其轉換成其他數據類型。 例如,地區設定 英文(美國) 表示 在地化是以美國英文為基礎,而全球化或值格式則根據美國所使用的標準。
當 Power Query 定義資料行數據類型或從某個數據類型轉換成另一個數據類型時,必須先解譯要轉換的值,才能將其轉換成不同的數據類型。
在 Power Query Online 中,此解譯定義於 [專案 ] 選項的 [ 區域設定] 底下。
在 Power Query Desktop 中,Power Query 會自動辨識您的作系統區域格式,並使用該格式來解譯數據類型轉換的值。 若要覆寫此地區設定,請開啟 [查詢 選項 ] 視窗,然後在 [ 目前檔案] 下的左窗格中,選取 [ 區域設定]。 您可以從這裡將地區設定變更為您想要的設定。
此地區設定對於將文字值解譯為特定數據類型很重要。 例如,假設您已將地區設定設定為 英文(美國),但其中一個 CSV 檔案中的數據行已格式化為英國日期/月/年格式。
當您嘗試將 Date 資料行的數據類型設定為 Date 時,您會收到錯誤值。
發生這些錯誤的原因是使用的地區設定正嘗試以英文 (美國) 格式解譯日期,也就是月/日/年。 因為行事曆中沒有第 22 個月,所以會造成錯誤。
而不是只選取[日期]數據類型,您可以滑鼠右鍵點擊該欄標題,選取變更類型,然後選取使用地區設定。
在 [ 使用地區設定變更資料行類型 ] 對話框中,您可以選取您想要設定的數據類型,但您也可以選取要使用的地區設定,在此情況下必須是 英文 (英國) 。
當您使用此地區設定時,Power Query 可以正確解譯值,並將這些值轉換成正確的數據類型。
確認最終日期值
全球化值會驅動日期值的格式設定。 如果您對 Power Query 顯示的值有任何疑慮,您可以透過從該值新增新的日、月和年的欄來驗證日期值的轉換。 若要新增這些新欄,請選取 [日期] 欄,然後移至功能區上的 [ 新增資料行 ] 索引標籤。 在 [日期和時間] 數據行 群組中,會顯示日期數據行的選項。
您可以從這裡擷取日期值的一部分,例如年號、月號、日數,或從 Date 數據行擷取的更多 數據 行。
藉由使用這些資料行,您可以確認日期值已正確轉換。
數據類型轉換矩陣
下列矩陣的設計目的是讓您快速查看從某個數據類型轉換成另一個數據類型之值的數據類型轉換的可行性。
備註
此矩陣中的轉換會從 [資料類型 ] 資料行中的原始數據類型開始。 轉換成新類型的每個結果都會顯示在原始數據類型的數據列中。
數據類型 | ![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
---|---|---|---|---|---|---|---|---|---|---|---|
![]() |
— | ![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
— | ![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
— | ![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
— | ![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
— | ![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
— | ![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
— | ![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
— | ![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
— | ![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
— | ![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
— |
圖標 | 說明 |
---|---|
![]() |
可能 |
![]() |
不可能 |
![]() |
可能,但它會將值新增至原始值 |
![]() |
可能,但它會截斷原始值 |
Power Query M 中的類型
您可以在 Power Query M 類型和類型轉換 一文中找到常用資料類型的清單。 Power Query M 公式語言 類型 一文中也有完整的數據類型清單。