应用场景:定位分隔符”/“最后出现的位置
方法一:Find+Substitute
=FIND(“@”,SUBSTITUTE(A1,”\”,”@”,LEN(A1)-LEN(SUBSTITUTE(A1,”\”,””))))
SUBSTITUTE 第四个参数的意思是把字符串中最后一个 “\” 替换成字符串中没出现过的其他字符(如 “@”),然后在查找这个没出现过的字符所在的位置就可以了。
方法二:Lookup+Mid+Column
=LOOKUP(1,0/(MID(A1,COLUMN(1:1),1)=”\”),COLUMN(1:1))
- 先来理解 COLUMN(1:1) 的意思:在空白 EXCEL 文档里选中第一行,在编辑栏里输入 = COLUMN(1:1),再Ctrl+Shift+Enter组合键,可以看到 COLUMN(1:1) 的结果是一个 1~16384 的数组。
- 再看 (MID(A1,COLUMN(1:1),1)=”\”),作用是一个个取出字符串中的字符,并判断是否与”\” 相同,相同则返回 TRUE,否则返回 FALSE。0/TRUE 得 0,0/FALSE 得
- 所以 0/(MID(A1,COLUMN(1:1),1)=”\”) 的结果是
- 所以 LOOKUP(1,0/(MID(A1,COLUMN(1:1),1)=”\”),COLUMN(1:1)) 的结果是
EXCEL 帮助里的备注:
本例中的 LOOKUP 函数在 0/(MID(A1(字符串所在单元格),COLUMN(1:1),1)=”\”) 里是找不到 1 的,所以它找到的是 0,但在 0/(MID(A1(字符串所在单元格),COLUMN(1:1),1)=”\”) 里有多个 0,从结果来看,它找到的是最后一个 0。(为什么?在 EXCEL 帮助里没有找到相关说明)