我正在寻找一个可以在最后一次出现之前提取所有字符串的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)
答案 0 :(得分:3)
使用此:
=LEFT(A1,FIND("~",SUBSTITUTE(A1,"/","~",LEN(A1)-LEN(SUBSTITUTE(A1,"/",""))))-1)
答案 1 :(得分:2)
使用AGGREGATE
的解决方案;首先找到最后一个" /"的位置。然后截断左:
=LEFT(A1, AGGREGATE(14,6,ROW($1:$200)/(MID(A1,ROW($1:$200),1)="/"),1)-1)
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)