Excel使用公式截取字符串

例如一个文件列表:nginx

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之类的函数能够直接用啊,惋惜。。只好想歪门邪道了:spa

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

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

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

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

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