在Excel中,当行的位置因行而异时提取字符串的想法

时间:2018-03-06 09:41:25

标签: excel excel-formula

我正在尝试从excel表中提取字符串(用户名)。

用户名的位置因行而异,例如:

  • d:\用户\詹姆斯
  • d:\用户\ johnny2
  • D:\ Userdata \ Users \ mark \ My Documents
  • D:\ Users \ Jessica \ My Private Files \ Files
  • d:\ NewteamUsers \ Molly2 \文件

我需要提取的只是用户名

  • 詹姆斯
  • johnny2
  • 标记
  • 杰西卡
  • Molly2

因为它在行之间变化,所以我不能使用函数来提取第n个字符或特定字符。只有常见的事情才会在用户名开始之前始终存在“sers”和“\”字符或空格。

请您指导我如何使用函数实现此功能?

3 个答案:

答案 0 :(得分:3)

尝试,

=TRIM(LEFT(SUBSTITUTE(REPLACE(A2, 1, FIND("sers\", A2)+4, TEXT(,))&"\", "\", REPT(" ", LEN(A2))), LEN(A2)))

如果用户并非总是正确的情况,请将SEARCH交换为FIND,您将获得字符串搜索的不区分大小写的位置。

enter image description here

答案 1 :(得分:3)

这个应该有效:

=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))

答案 2 :(得分:2)

这是另一种方法。

=TRIM(MID(SUBSTITUTE(A2,"\",REPT(" ",99)),SEARCH("sers",SUBSTITUTE(A2,"\",REPT(" ",99)),1)+99,99))