查找字符位置_查找某个字符最后一次出现的位置

       在EXCEL文档里想从很长的文件路径中取得文件名,【数据】→【分列】是个不错的选择,但用函数会显得更高大上一些。

首先,需要获取最后一个"\"所在的位置。

方法1:

FIND("@",SUBSTITUTE(A1(字符串所在单元格),"\","@",LEN(A1)-LEN(SUBSTITUTE(A1,"\",""))))

这个比较好理解,只要理解了SUBSTITUTE第四个参数的作用就好。

SUBSTITUTE第四个参数:可选。指定要用 new_text 替换 old_text 的事件。如果指定了 instance_num,则只有满足要求的 old_text 被替换。否则,文本中出现的所有 old_text 都会更改为 new_text。

例:

SUBSTITUTE案例

19ea22b03999bd8e46f9b23f35349d8e.png

              所以,整个函数的意思是把字符串中最后一个"\"替换成字符串中没出现过的其他字符(如“@”),然后在查找这个没出现过的字符所在的位置就可以了。

b807edb33e9d87aecacf775b78730168.png

方法2:

LOOKUP(1,0/(MID(A1(字符串所在单元格),COLUMN(1:1),1)="\"),COLUMN(1:1))

这个理解起来比较难。

先来理解COLUMN(1:1)的意思:

在空白EXCEL文档里选中第一行,在编辑栏里输入=COLUMN(1:1),再按Ctrl+Shift+Enter组合键

08788ed9d527781df0228e6670f1fac0.png

可以看到COLUMN(1:1)的结果是一个1~16384的数组。

 再看(MID(A1(字符串所在单元格),COLUMN(1:1),1)="\"),作用是一个个取出字符串中的字符,并判断是否与"\"相同,相同则返回TRUE,否则返回FALSE。

0/TRUE得0,0/FALSE得

d378c6fae741bfc91a7e1b2e1e79e595.png

所以LOOKUP(1,0/(MID(A1(字符串所在单元格),COLUMN(1:1),1)="\"),COLUMN(1:1))的结果是

4945fdac131e8b35a0d7fd8e198dbdb0.png

EXCEL帮助里的备注:

71f3b97607a79d351dde22e14c7d0a0f.png

本例中的LOOKUP函数在0/(MID(A1(字符串所在单元格),COLUMN(1:1),1)="\")里是找不到1的,所以它找到的是0,但在0/(MID(A1(字符串所在单元格),COLUMN(1:1),1)="\")里有多个0,从结果来看,它找到的是最后一个0。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值