在 Excel 中拆分文件夹路径以返回最终文件夹

在 Excel 中拆分文件夹路径以返回最终文件夹

我在 Excel 中有一个包含文件和文件夹路径的列。例如 C:\1_Folder\2_Folder\3_Folder\my_file.txt

我想提取最终文件夹的名称并将其放在新列中。在此示例中为 3_Folder。

可以使用公式而不是 VBA 来实现吗?

编辑:嵌套文件夹的数量可以变化。

答案1

您可以使用 FIND 和 MID 文本函数。这将适用于可变数量的文件夹

路径文本C:\1_Folder\2_Folder\3_Folder\my_file.txt

查找倒数第二个斜线的位置(B1):FIND("|",SUBSTITUTE(A1,"\","|",LEN(A1)-LEN(SUBSTITUTE(A1,"\",""))-1))

查找最后一个斜线(C1)的位置:FIND("\",A1,B1+1)

获取倒数第二个斜杠和最后一个斜杠之间的字符:MID(A1,B1+1,(C1-B1)-1)

答案2

我用正则表达式插件对于这样的任务,使用正则表达式:

=RegExReplace(A1,".*\\([^\\]*)\\[^\\]*","$1")- 这将提取最后一个文件夹之前的子字符串\(实际上是您需要的最后一个文件夹)

在此处输入图片描述

答案3

这个答案是基于一个非常相似的问题

如果您希望在一个公式中使用它,则可以使用:

=RIGHT(A6,LEN(A6)+1-FIND("@",SUBSTITUTE("\"&A6,"\","@",(LEN(A6)-LEN(SUBSTITUTE("\"&A6,"\",""))+1))))

... 它基本上通过删除所有反斜杠并比较长度来计算反斜杠的数量。它使用该数字将最后一个出现的反斜杠替换为“@”,然后返回并找到“@”的位置,并将其输入到正确的公式中以获取最后一个反斜杠后面的子字符串。添加了一个额外的反斜杠和一个“+1”来处理源中没有反斜杠的情况。如果没有反斜杠,则返回原始字符串。

如果您的数据已经包含“@”,那么您将需要选择不同的替换字符。

相关内容