admin管理员组

文章数量:829162

Excel使用公式截取字符串

例如一个文件列表:

E:\Nginx\nginx\trunk\src\core\nginx.c
E:\Nginx\nginx\trunk\src\http\ngx_http.c
E:\Nginx\nginx\trunk\src\os\win32\ngx_os.h
E:\Nginx\nginx\branches\stable-1.2\src\core\nginx.h
E:\Nginx\nginx\trunk\src\core\ngx_buf.c

现在需要截取文件名。

多么希望有一个LASTINDEXOF或者RIGHTFIND之类的函数可以直接用啊,可惜。。只好想歪门邪道了:

RIGHT(A1, LEN(A1)-FIND("*", SUBSTITUTE(A1, "\", "*", LEN(A1)-LEN(SUBSTITUTE(A1,"\","")))))

注:字符串长度减掉把“\”去掉的字符串长度,等于“\”个数,也就是最后一个“\”的位置。

另一个同事直接在SQLServer中使用SQL语句截取的,思路也很奇葩:

SELECT REVERSE
(
SUBSTRING(
REVERSE(B),
CHARINDEX('.',REVERSE(B))+1 ,
CHARINDEX('\',REVERSE(B))-CHARINDEX('.',REVERSE(B))-1
)
) FROM C

注:先反转,找到第一个“\”左侧的子串,再反转。不过在其他数据库下不能用,比较可惜。

本文标签: Excel使用公式截取字符串