当字符串在Excel中的位置因行而异时提取字符串的方法
我试图从excel表中提取字符串(用户名) 用户名的位置因行而异,例如:当字符串在Excel中的位置因行而异时提取字符串的方法,excel,excel-formula,Excel,Excel Formula,我试图从excel表中提取字符串(用户名) 用户名的位置因行而异,例如: D:\Users\james D:\Users\johnny2 D:\Userdata\Users\mark\My Documents D:\Users\Jessica\My Private Files\Files D:\NewteamUsers\Molly2\Documents 我需要提取的只是用户名 詹姆斯 约翰尼 标记 杰西卡 Molly2 因为它随行而异,所以我不能使用函数在第n个字符或特定字符后提取。只有
- D:\Users\james
- D:\Users\johnny2
- D:\Userdata\Users\mark\My Documents
- D:\Users\Jessica\My Private Files\Files
- D:\NewteamUsers\Molly2\Documents
- 詹姆斯
- 约翰尼
- 标记
- 杰西卡
- Molly2
=TRIM(LEFT(SUBSTITUTE(REPLACE(A2, 1, FIND("sers\", A2)+4, TEXT(,))&"\", "\", REPT(" ", LEN(A2))), LEN(A2)))
如果用户的大小写不总是正确的,那么将搜索替换为FIND,您将获得一个不区分大小写的位置来进行字符串搜索
这个应该可以:
=IF(ISERROR(FIND("\",RIGHT(A1,LEN(A1)-FIND("Users\",A1)-5))),RIGHT(A1,LEN(A1)-FIND("Users\",A1)-5),LEFT(RIGHT(A1,LEN(A1)-FIND("Users\",A1)-5),FIND("\",RIGHT(A1,LEN(A1)-FIND("Users\",A1)-5))-1))
这里还有一个方法
=TRIM(MID(替换(A2,“\”,REPT(“,99)),SEARCH(“sers”,替换(A2,“\”,REPT(“,99)),1)+99,99))
使用正则表达式提取“Users\”之后的第一部分。像“用户\([^]*)”@jezrael,另一个家伙很可能就是这么做的。几乎每次我们都提出一个答案时,他都投我的反对票,有一次他争论我:)