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
代表最后一个"/"
位置的上限。
为了使数组的大小自动适应A1
string的长度,它有一个更长的公式,但非常快:
=LEFT(A1, AGGREGATE(14,6,ROW(OFFSET($A1,0,0,LEN(A1)))/ (MID(A1,ROW(OFFSET($A1,0,0,LEN(A1))),1)="/"),1)-1)