Excel公式来计算string右侧第一个出现的“/”

我寻找一个excel函数,可以提取所有的string前最后一次出现'/'

样品:

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

预期产出:

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

我可以通过使用下面的excel公式来实现这一点。 但是这个逻辑被假设为“/”出现在位置5.我看到一个更灵活的公式,其中公式应该从string的右侧开始计数第一个“/”。 欣赏任何帮助

=MID(A1,1,FIND("~",SUBSTITUTE(A1,"/","~",5))-1)

用这个:

 =LEFT(A1,FIND("~",SUBSTITUTE(A1,"/","~",LEN(A1)-LEN(SUBSTITUTE(A1,"/",""))))-1) 

它会通过比较string的长度和“/”来find最后的“/”。 在这里输入图像说明

使用AGGREGATE的解决scheme; 首先find最后一个“/”的位置,然后截断左边:

 =LEFT(A1, AGGREGATE(14,6,ROW($1:$200)/(MID(A1,ROW($1:$200),1)="/"),1)-1) 

200代表最后一个"/"位置的上限。

为了使数组的大小自动适应A1string的长度,它有一个更长的公式,但非常快:

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