所以我有一个 excel 任务,涉及获取文件路径 (C:\foo...) 并仅获取路径(即从路径中删除实际文件名)。我似乎无法让 SEARCH/FIND 功能工作,因为它总是在文件路径中找到第一个“\”(在驱动器指定之后)并且只删除 3 个左右的字符。
是否有一个公式可以让我在文件路径中的最后一个“\”之后进行修剪?
提前感谢您的帮助!
首先,您的问题在superuser.com上会更好。
您可以使用LEFT
, with FIND
and SUBSTITUTE
... 和其他几个:
=LEFT(A1, FIND(CHAR(1), SUBSTITUTE(A1, "\", CHAR(1), LEN(A1)-LEN(SUBSTITUTE(A1, "\", ""))))-1)
LEN(A1)-LEN(SUBSTITUTE(A1, "\", "")
基本上给出了\
字符串中的个数。
SUBSTITUTE(A1, "\", CHAR(1), LEN(A1)-LEN(SUBSTITUTE(A1, "\", ""))
这部分用\
一个名为 的字符替换最后一个部分CHAR(1)
。
然后,使用FIND
获取该字符的位置,使用负 1 删除找到的字符的位置,以LEFT
(比喻和字面意思)与您需要的部分一致。
如果您需要最后一个反斜杠,请删除-1
.
试试这个版本
=LEFT(A1,LOOKUP(2^15,FIND("\",A1,ROW(INDIRECT("1:"&LEN(A1))))))
该FIND
函数返回一个数字数组,包括 A1 中所有“\”字符的LOOKUP
位置 - 从该数组中获取最后一个数字 - 即最后一个“\”的位置,然后LEFT
根据该数字获取相关部分
替代品:
=SUBSTITUTE(A1,TRIM(RIGHT(SUBSTITUTE(A1,"\",REPT(" ",99)),99)),"")
=LEFT(A1,LEN(A1)-LEN(TRIM(RIGHT(SUBSTITUTE(A1,"\",REPT(" ",99)),99))))
并删除结尾 \ 如果需要:
=SUBSTITUTE(A1,"\"&TRIM(RIGHT(SUBSTITUTE(A1,"\",REPT(" ",99)),99)),"")
=LEFT(A1,LEN(A1)-LEN(TRIM(RIGHT(SUBSTITUTE(A1,"\",REPT(" ",99)),99)))-1)