如何按规则提取数据?

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

/uploads/question/20210121/a3b09ed906958b25f146822361556e78.png

已邀请:

jiayu

赞同来自: jetwang

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

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

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

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

/uploads/answer/20210121/6ed20bb30ef6eee90c808c0950abdf87.png                                      

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

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

/uploads/answer/20210121/e5897bf09a5847c5389df04e8fbcd2ac.png

3、即可获得如下数据

/uploads/answer/20210121/996035a2a98b5a3516094352a797910a.png

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

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

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

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

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

/uploads/answer/20210121/831990958a817ce669e93e1cb9a5db5d.png

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

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

/uploads/answer/20210121/50e2c49f51bb604ef5ff6c7fedd7b094.png

3、最后对数据进行截取

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

/uploads/answer/20210121/a31213ca530ac2949502ec7789a52ee1.png

4、效果如图所示。

/uploads/answer/20210121/57f8eb6a5536892e652efc4a7e75492b.png

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

要回复问题请先登录注册