這篇文章的目的是為了讓在使用RPA工具的人了解,為什麼資料要轉換格式?常見的資料格式有哪些?實際需要轉換格式的使用場景。
為什麼要做資料格式轉換?
為了把每個流程接起來,我們要確保每個輸入或被輸出格式都是正確的,且讓下一個步驟被接收到再做進一步地處理。如果沒有正確處理好資料格式,下一個步驟可能會發生以下錯誤:
- 流程報錯
- 字串無法比對
- 日期變成1900-01-00
- 數字變成文字,無法計算
- API拒收
所以資料統一在建立流程中也是很重要的一環,如果是多人協作,甚至需要大家事先定義好,例如如果需要用到日期的部分,格式確定好使用YYYYMM也就是"202405"這樣的方式互相傳送。
補充:在日期的表達中,我們常會使用 YYYYMMDD來表示西元年、月份、日期,還有YYYYMMDDHHmmss 表達年、月、日、時、分、秒。
常見的資料格式有哪些?
在本系列文章中的第二篇的有提到變數的型態有哪些,這可以延續到這邊做討論。
變數可以存放的種類等於資料格式有幾種,像是字串String, 數字Number, 日期Date/DateTime, 清單Array/List, 物件(Object/JSON), 布林值(True, False), 表格DataTable(在Power Automate存放Excel值的資料格式)。
實際需要轉換格式的使用場景
在Excel中,我們常會遇到讀取excel金額1,200-> 你不知道它是字串,當你想要把金額都加總的時候就會發現怎麼流程報錯了? 所以如果要對欄位多做計算或其他處理,都會先確保把他的欄位轉換成可以處理的格式,而這邊的例子就必須要把金額先轉換成數字。
但當你要這樣做的時候又會發現另一個問題,無法直接轉換成數字??才發現原來1,200的逗號是無法被數字識別的,所以要成功把字串轉換成數字實際上就會需要兩個步驟:
- 在資料格式還是字串時,先去掉逗號。
- 再轉成數字。
這樣才會真的成功轉換!所以很多開發人員會提到他們要先做資料清洗實際就是處理類似這樣的情況,以確保資料可以正確拿來用,計算完可以呈現正確的結果給使用者。
這邊再舉一個日期格式例子(因為日期是程式中很常用到的元素),可能採購部提供的日期格式是2025/2/1但是財務部門是使用2025-02-01,每個部門的Excel格式都不一樣,甚至欄位名稱也不統一,這就需要在做流程的時候將他們欄位跟日期格式統一,要做篩選或樞紐時才能正確。
轉換資料的兩種思維模式
- 先判斷 -> 再轉換(Validation -> Transformation)
- 先判斷資料欄位是否正確,不正確再轉換,無法轉換丟錯誤或Log。
- 先判斷這個日期是否有效,無效先試做轉換,無法轉換時丟錯誤或Log。 - 將資料格式統一到一種標準(Normalization)
- 流程內部全部用統一格式(例如全部用DateTime、全部用Timestamp)。
只有在輸出時才轉換成需求格式:例如輸出時使用者希望看到YYYY/MM/DD的格式,再做轉換。
常用的資料轉換工具(不管哪個工具都適用):容易看到類似的內建功能
字串處理:Trim, Split, Replace, Substring
數字轉換:ParseInt, Round
日期轉換:ParseDate, FormatDateTime
表格轉換:Excel -> DataTable, DataTable -> List, List -> JSON
我覺得常見需要處理的還是會落在字串、數字、日期。
結語
- 沒有資料格式轉換,自動化流程無法穩定。
- 格式轉換是建制流程的「前置清理」。
- 讓不同系統之間的資訊能流動更順暢。
最後留下一個小題目讓大家可以思考看看
公司有三份來自不同單位的 Excel,每份都有「日期」和「金額」欄位,但格式如下:
- A 部門日期:2025/1/05,金額:1,200
- B 部門日期:2025-01-05,金額:1200.00
- C 部門日期:20250105,金額:1200 元
你要將它們整合成一份可上傳 ERP 的 CSV,ERP 要求格式為:
- 日期:yyyyMMdd(例如 20250105)
- 金額:純數字,不含小數、不含符號、不含文字
請思考:你要如何設計資料轉換步驟,才能把三份資料「標準化」後再合併?
可以列出你的流程步驟,不需要寫程式。
--------
參考提示答案:
1. 先把三份資料的日期全部轉換成同一種日期格式,這邊就可以直接先轉換成ERP要求的格式。
2. 金額部分一律走固定化的流程,盡可能去掉所有預想的到的多餘字元,確保只剩數字保留。
- 去掉符號($, 元等等)
- 去掉多餘空白
- 去掉逗號
- 最後轉成數字格式
3. 資料統一格式後,進行合併輸出成一個CSV檔案,完成上傳ERP。









