DataFocus
菜单⌄

如何按规则提取数据?

搜索分析历史归档
匿名用户

例如,将下图中,含有斜杠的数据“18/18/18”,提取斜杠前的“18”;不含斜杠的数据取值为0。


2 条回复查看回复

此问题为历史内容,原作者署名由来源记录保留,不与当前账号自动绑定。

2 条回复

按时间排序
jiayu
历史回复

一、提取第一个斜杠前的数据

1、首先,需要确定斜杠位置。

如图,使用公式strpos对数据中第一个“/”符号定位,其中test为列名。

【斜杠位置】strpos(test,"/" )

                                     

2、再对第一个斜杠前的数据进行截取;无斜杠的数据,赋值为0

【截取】if斜杠位置=0then"0"else substr(test,1,斜杠位置-1)


3、即可获得如下数据


二、提取下一个斜杠前的数据

继续截取 第一个斜杠后、第二个斜杠前的数据。

1、首先提取出第一个斜杠之后的剩余数据。

【截取剩余】if斜杠位置=0 then"0"else substr (test,斜杠位置+1,100)

其中“100”为数据提取的位数,用来保证提取剩余所有数据,可更换为其它。


2、再确定剩余数据中,斜杠的位置

【斜杠位置2】strpos(截取剩余,"/" )


3、最后对数据进行截取

【截取2】if斜杠位置2=0then"0" elsesubstr (截取剩余,1,斜杠位置2-1)


4、效果如图所示。


同理,可以继续对剩余数据进行截取

jetwang
历史回复

[对历史回答 #4411 的评论]
强大!

此问题已关闭回复,现有讨论仍可阅读。