1.概述
1.1 預期效果
使用者有時需清洗掉資料中的一些不需要的字元。
例如,括號型(負數),特殊貨幣符號(¥),千分位(數值類型自帶千分位)等,如下圖所示:
1.2 實現思路
先用 left 函式截取第一位回傳值,與「(」符號進行比較,判斷數位的「正負」屬性。
再用 replace 函式取代字串中的「括號、金錢符號和千分位符號」內容。
最後使用「TODOUBLE」將正文格式資料轉換為數值格式。
2. 操作步驟
範例資料:
若需跟隨文檔進行操作,可將資料表匯入資料庫中。
2.1 資料接入
登入 FineDataLink 後,進入資料開發,新增資料轉換節點,如下圖所示:
進入資料轉換編輯介面,新增 DB 表輸入並將資料表取出,以便後續進行资料清理,如下圖所示:
點選資料預覽即可看到資料表,如下圖所示:
2.2 新增計算列
輸入欄位名,然後點選欄位值旁邊的編輯按鈕,輸入公式,如下圖所示:
TODOUBLE(if(left(利潤,1)="(","-"+REPLACE(REPLACE(REPLACE(REPLACE(利潤,"¥",""),",",""),"(",""),")",""),REPLACE(REPLACE(利潤,"¥",""),",","")))
公式說明:
公式 | 說明 |
---|---|
REPLACE(利潤,"¥","") | 將利潤欄位中的¥取代成空 |
REPLACE(REPLACE(REPLACE(利潤,"¥",""),",",""), "(","") | 將利潤欄位中的¥取代成空,並將( 去掉 |
REPLACE(REPLACE(REPLACE(REPLACE(利潤,"¥",""),",",""),"(",""),")","") | 將利潤欄位中的¥取代成空,並將( 和 ) 去掉 |
REPLACE(REPLACE(利潤,"¥",""),",","") | 將利潤欄位中的¥取代成空,並將,千分符取代去掉 |
if(left(利潤,1)="(","-"+REPLACE(REPLACE(REPLACE(REPLACE(利潤,"¥",""),",",""),"(",""),")",""),REPLACE(REPLACE(利潤,"¥",""),",","")) | 如果利潤欄位的第二個字元為 ( 則取代去掉括號和¥,同時將處理好的資料前連接- 如果利潤欄位的第二個字元不是 ( 則只將利潤欄位中的¥取代成空,並將,千分符取代去掉 |
TODOUBLE() | 將結果從正文轉換為數值類型 |
3)設定完成後點選資料預覽即可看到處理好的欄位,如下圖所示: