1.概述
1.1 预期效果
用户有时需清洗掉数据中的一些不需要的字符。
例如,括号型(负数),特殊货币符号(¥),千分位(数值型自带千分位)等,如下图所示:
1.2 实现思路
先用 left 函数截取第一位返回值,与「(」符号进行比较,判断数字的「正负」属性。
再用 replace 函数替换字符串中的「括号、金钱符号和千分位符号」内容。
最后使用「TODOUBLE」将文本格式数据转换为数值格式。
2. 操作步骤
示例数据:订单利润数据.xlsx
若需跟随文档进行操作,可将数据表导入数据库中。
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)设置完成后点击数据预览即可看到处理好的字段,如下图所示: