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

问题描述 投票:3回答:3

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

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

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

我需要提取的只是用户名

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

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

能否指导我如何使用功能实现这一点?

excel excel-formula
3个回答
3
投票

尝试,

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

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

enter image description here


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
投票

这是另一种方法。

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

© www.soinside.com 2019 - 2024. All rights reserved.