在Excel中从文件路径中隔离字符串

15 浏览
0 Comments

在Excel中从文件路径中隔离字符串

假设我在A列中有4行(标题为文件路径),其内容如下:

A1:/page1/page2/page3

A2:/page4/page5

A3:/page6/page7/page8/page9

A4:/page10

...我需要一个公式来将最后一个子文件夹的上级文件夹隔离出来,放在对应的B列中(标题为上级文件夹),所以:

B1应该得到值page2

B2应该得到值page4

B3应该得到值page8

B4应该得到值[空白],因为它没有上级文件夹

请问有人可以建议一个可以实现这个目标的公式吗?

谢谢

我尝试了以下公式:

=IF(LEN(A1) = LEN(SUBSTITUTE(A1,"/","")),"",MID(A1,FIND(REPT("/",LEN(A1)-LEN(SUBSTITUTE(A1,"/",""))-1),LEN(A1)))

=LET(v,A1,INDEX(TEXTSPLIT(v,"/"),LEN(v)-LEN(SUBSTITUTE(v,"/",""))))

还有

Get parent folder path from file path using cell formula(可以将子文件夹上方的整个文件路径隔离出来)

但无法隔离上级文件夹。

0
0 Comments

问题的出现原因:用户在Excel中需要从文件路径中提取字符串,但是不知道如何实现。

解决方法:用户发现了一个解决方案,即使用以下公式:=TRIM(LEFT(RIGHT(SUBSTITUTE(A1,"/",REPT(" ",100)),200),100))。该方法在Excel 2019 for Mac中有效,但对于其他Excel版本可能会有不同的解决方案。

0
0 Comments

在Excel中从文件路径中分离字符串的问题是由以下内容引起的。使用以下公式可以解决这个问题。

对于单个单元格尝试:

公式在B1中:=(TEXTSPLIT(A1,“/”),-2)

对于整个范围:

公式在B1中:=TEXTAFTER(“/”&TEXTBEFORE(A1:A4,“/”,-1),“/”,-1)

对于较旧版本的Excel,我想链接到关于使用FILTERXML()而不是MID(),LEFT(),RIGHT()等混合的问题的这个问题。公式如下:

=IFERROR(FILTERXML(""&SUBSTITUTE(A1,"/","")&"","//s[last()-1]"),"")

如果你使用的是2013年之前的Excel版本和/或Mac,则你可能希望比你自己的答案更动态一些:

=TRIM(LEFT(RIGHT(SUBSTITUTE(A1,"/",REPT(" ",LEN(A1))),LEN(A1)*2),LEN(A1)))

所有的公式现在都已经链接了,这非常有帮助。

在你的TAKE/TEXTSPLIT解决方案中的“@”是为了解决TEXTSPLIT会溢出2D的情况吗?

.b 是的,没错。

哦,我明白它是怎么做的了。它会将最后2列的结果溢出,而不使用它。非常聪明和干净的解决方案。

.b,这被称为隐式交集。添加“@”将返回数组的左上角元素。要么这样,要么使用更冗长的TAKE()。

我知道它的工作方式,但我习惯于在范围中使用它,所以它返回第一个元素。基本上它确实做到了这一点,但在另一个上下文中。

0