已知A1=,要获取Arsenal.html字符串。
思考:
Arsenal.html字符串前面最明显的分隔符是"/",一般情况都是使用SUBSTITUTE()直接定位到"/"进行替换为特殊字符,然后再通过FIND()特殊字符定位位置,最后再通过RIGHT()函数进行截取。但是"/"在A1中存在多个,而且为了能适应含有任何多个"/"的A1,不能使用以上方法。
解决:
将A1中的“/”替换为一个长度很长的特殊字符,最好替换到长度与A1字符串一致,这样A1字符串就被拉长了很多,然后再从右截取A1长度,这样得到的字符串就肯定包含了“Arsenal.html”在内。那么替换字符选择什么好呢?既然最后得到的是类似“??????????????????????????????????????????????????????????????????????Arsenal.html”这种格式的字符串,那么"?"就最好能是“ ”,可以方便的使用TRIM()函数去除掉空格。
实现:
公式=TRIM(RIGHT(SUBSTITUTE(A1,"/",REPT(" ",LEN(A1))),LEN(A1))).
解释:
1.REPT(" ",LEN(A1))
得到一空格串,长度为A1的长度(38个空格)。
REPT函数可以按照定义的次数重复现实文本,相当于复制文本。
2.SUBSTITUTE(A1,"/",REPT(" ",LEN(A1)))
将A1中的字符"/"用38个空格串(第1步所得)来替换,此时,可获得的文本如下:
“http: sports Arsenal.html”
其中的空格长度是38,就是A1的长度,把A1字符串拉长了。SUBSTITUTE(text,old_text,new_text,instance_num)函数是在text字符串中查找old_text,并用new_text进行替代。
3.RIGHT(SUBSTITUTE(A1,"/",REPT(" ",LEN(A1))),LEN(A1))
RIGHT()从右往左取字符串,取的长度为A1长度38个字符,此时得到长度38的字串:
“ Arsenal.html”,其中前面的空格为26个,后面的Arsenal.html为12个,合计38字符。
4.TRIM(RIGHT(SUBSTITUTE(A1,"/",REPT(" ",LEN(A1))),LEN(A1)))
最后使用TRIM()将空格删除,可得到结果:Arsenal.html
阅读(1986) | 评论(0) | 转发(0) |