如何提取出最后一个斜杠(\)之前的内容?
你好,我是刘卓。欢迎来到我的公号,excel函数解析。今天要分享的内容是如何提取出最后一个斜杠之前的内容,这类型的题很多小伙伴也会经常遇到。
=VLOOKUP("*\",LEFT(A3,99-ROW($1:$98)),1,)
=LEFT(A3,-LOOKUP(,-FIND("\",A3,ROW($1:$99))))
这个公式的思路是找到最后一个斜杠的位置,然后用left从左边提取出对应的长度。
FIND("\",A3,ROW($1:$99))这部分用find在A3中分别从第1,2,3,···,97,98,99个字符开始查找斜杠的位置。返回的结果为{3;3;3;9;9;9;9;9;9;23;23;23;23;23;23;23;23;23;23;23;23;23;23;#VALUE!;···;#VALUE!}。
其中最后一个数字23就是最后一个斜杠的位置,所以我们要把最后一个数字23提取出来。可以用LOOKUP(9^9,FIND("\",A3,ROW($1:$99)))这个公式。
但是为了省一个字符,可以改为这种写法-LOOKUP(,-FIND("\",A3,ROW($1:$99))),结果是一样的。最后用left从左边提取出23个字符就得到了我们要的结果。
第3种,left+match+mid
=LEFT(A3,MATCH(1,0/(MID(A3,ROW($1:$99),1)="\")))
这个公式和第2种的思路一样,也是找到最后一个斜杠的位置,然后用left从左边提取出对应的长度。只不过现在用match来查找最后一个斜杠的位置。具体运算过程就不再说明了。
=REPLACE(A3,-LOOKUP(,-FIND("\",A3,ROW($1:$99)))+1,99,)
这个公式也是先找到最后一个斜杠的位置,然后把最后一个斜杠后面的内容替换掉,可以看作删除掉。
找最后一个斜杠的方法和第2种是一样的,用的是lookup和find。最后替换的时候用的是replace,replace是按指定位置替换。
替换的原始字符串是A3,替换的起始位置是最后一个斜杠的位置加1,替换的长度是99,最后替换的内容是空文本。简单来说就是把最后一个斜杠后面的内容替换为空。
在A3单元格输入下面的公式,向下填充。
=SUBSTITUTE(A3,TRIM(RIGHT(SUBSTITUTE(A3,"\",REPT(" ",99)),99)),)
这个公式不是数组公式,它的思路是先把最后一个斜杠后面的内容提取出来,然后用substitute将提取出来的内容替换为空,substitute是按指定内容替换。
第6种,substitute+mid+lookup+find
在A3单元格输入下面的公式,不用按三键。
=SUBSTITUTE(A3,MID(A3,-LOOKUP(,-FIND("\",A3,ROW($1:$99)))+1,99),)
这个公式和第5种的思路一样,不再重复说明。
第7种,substitute+rept+trim+len+left
在A3单元格输入下面的公式,向下填充。
=TRIM(LEFT(SUBSTITUTE(A3,"\",REPT(" ",99),LEN(A3)-LEN(SUBSTITUTE(A3,"\",))),99))&"\"
https://pan.baidu.com/s/1K_yX_uMHHH39uR5rK9WiEA