當 Excel 的數字太長,最後一位將會四捨五入歸零或出現科學記號。透過原始資料 (CSV) 轉成 Excel 設定文字資料類型解決問題。
Photo by Joe deSousa on StockSnap |
問題狀況
CSV 轉換成 Excel (XLSX) 檔案時,發現長數字 (有 16 位) 的欄位值的最後一位變成零或出現科學記號 (科學符號)。例如:原本欄位如果數字太長,最後一位都會變成零。
- 1234567890123454 變成 1234567890123450
- 1234567890123455 變成 1234567890123460
- 1234567890123456 變成 1234567890123460
- 12345678901234567 變成 1.23456789012346E+016
現在遇到的狀況是 CSV 是正常的,如何轉換到 Excel 後,不會被歸零或出現科學記號。
測試用檔案
CSV 檔案內容: (產品名稱由 ChatGPT 提供)
No.,產品編號,產品名稱1,1234567890,閃耀星空指甲油套裝2,12345678901,宇宙探險智能機器人3,123456789012,瞬間冰涼輕便空調扇4,1234567890123,靈活運動藍牙運動手環5,12345678901234,無痕美髮抗熱吹風機6,123456789012345,神秘花園精油擴香器7,1234567890123456,無限視野VR眼鏡8,12345678901234567,遠行者戶外多功能背包
另存成 input.csv 檔案 (UTF-8 編碼)
解決方式
方法 1:使用 Excel 匯入 CSV 檔案
(1) Excel 不能直接點兩下開啟 CSV 檔案,會變成亂碼
(2) 先建立空白活頁簿
(3) 切換到「資料」標籤,點選「取得資料 (Power Query)」按鈕
(4) 選擇資料來源:「文字/CSV」
(5) 選擇電腦上的 CSV 檔案(6) 可以預覽前幾筆的資料內容,雖然這時候看起來資料正常,但還不能按「load」按鈕
點選右下的「轉換資料」按鈕
(7) 進入 Power Query 編輯器。顯示資料預覽畫面,在每一欄欄位名稱的右邊,標示了資料類型的圖示,例如「123」圖示代表數字、或「ABC」圖示代表示文字類型。(9) 點選左上角「Close & load」按鈕
方法 2:使用 LibreOffice Calc 匯入 CSV,再轉換成 Excel (XLSX) 檔案
當 CSV 檔案包含換行符號的欄位值時,Excel 轉換常會出現錯誤,所以我常用 LibreOffice Calc 將 CSV 轉換成 Excel 檔案。
(1) 「Text Import」對話視窗,可以設定 CSV 檔案詳細選項,以及預覽資料。這時候還不要按「OK」按鈕。
(2) 選擇欄位名稱「產品編號」上方的資料類型「Standard」可以看到欄位名稱「產品編號」上方的資料類型「Standard」,順利變成「Text」
如果匯入 CSV 檔案時,沒有選擇 Text 資料類型,可以參考這篇文章 How do you convert numbers to text? - English - Ask LibreOffice 修改。(5) 另存新檔
檔案類型 (File type) 要選「Excel 2007-365 (.xlsx)」,再按「Save」按鈕
(7) 開啟 Excel 檔案,也可以看到產品編號不會被歸零或出現科學記號
軟體版本資訊
- Mac 版 Microsoft® Excel 版本 16.71
- LibreOffice 版本 7.3.4.2 Community
留言
張貼留言