6

所以我有一个 excel 任务,涉及获取文件路径 (C:\foo...) 并仅获取路径(即从路径中删除实际文件名)。我似乎无法让 SEARCH/FIND 功能工作,因为它总是在文件路径中找到第一个“\”(在驱动器指定之后)并且只删除 3 个左右的字符。

是否有一个公式可以让我在文件路径中的最后一个“\”之后进行修剪?

提前感谢您的帮助!

4

3 回答 3

11

首先,您的问题在superuser.com上会更好。

您可以使用LEFT, with FINDand 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.

于 2013-08-22T20:23:24.007 回答
3

试试这个版本

=LEFT(A1,LOOKUP(2^15,FIND("\",A1,ROW(INDIRECT("1:"&LEN(A1))))))

FIND函数返回一个数字数组,包括 A1 中所有“\”字符的LOOKUP位置 - 从该数组中获取最后一个数字 - 即最后一个“\”的位置,然后LEFT根据该数字获取相关部分

于 2013-08-22T21:39:09.953 回答
2

替代品:

=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)
于 2013-08-22T21:03:34.690 回答