从字符串右侧开始计算第一个斜杠出现的Excel公式

3
我希望你能够提供一个Excel函数,可以提取最后一个斜杠(/)之前的字符串。
示例:
http://teamspace.abb.com/sites/Product/NAM_MASTERDATA

预期输出:

http://teamspace.abb.com/sites/Product

我可以通过以下的Excel公式来实现。但是这个逻辑假定'/'出现在第5个位置。我需要一种更加灵活的公式,该公式应该从字符串右侧计算第一个'/'的出现次数。感谢您的任何帮助。 =MID(A1,1,FIND("~",SUBSTITUTE(A1,"/","~",5))-1)

在一般情况下,您可能需要使用VBA或用户定义的函数来处理此问题。 - Tim Biegeleisen
2个回答

4
请使用以下内容:
=LEFT(A1,FIND("~",SUBSTITUTE(A1,"/","~",LEN(A1)-LEN(SUBSTITUTE(A1,"/",""))))-1)

它将通过比较带有和不带有 "/" 的字符串长度来找到最后一个 "/". enter image description here

2
使用AGGREGATE函数的解决方案;首先找到最后一个“/”的位置,然后截取左侧部分:
=LEFT(A1, AGGREGATE(14,6,ROW($1:$200)/(MID(A1,ROW($1:$200),1)="/"),1)-1)

200代表最后一个"/"的位置不超过200。

为了使数组的大小自动适应A1字符串的长度,需要使用一种比较长的公式,但非常快速:

=LEFT(A1, AGGREGATE(14,6,ROW(OFFSET($A1,0,0,LEN(A1)))/
  (MID(A1,ROW(OFFSET($A1,0,0,LEN(A1))),1)="/"),1)-1)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接