应用场景:定位分隔符”/“最后出现的位置

方法一: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))

  1. 先来理解 COLUMN(1:1) 的意思:在空白 EXCEL 文档里选中第一行,在编辑栏里输入 = COLUMN(1:1),再Ctrl+Shift+Enter组合键,可以看到 COLUMN(1:1) 的结果是一个 1~16384 的数组。

【Excel】查找最后一次出现的位置 - 图1

  1. 再看 (MID(A1,COLUMN(1:1),1)=”\”),作用是一个个取出字符串中的字符,并判断是否与”\” 相同,相同则返回 TRUE,否则返回 FALSE。0/TRUE 得 0,0/FALSE 得【Excel】查找最后一次出现的位置 - 图2
  2. 所以 0/(MID(A1,COLUMN(1:1),1)=”\”) 的结果是

【Excel】查找最后一次出现的位置 - 图3

  1. 所以 LOOKUP(1,0/(MID(A1,COLUMN(1:1),1)=”\”),COLUMN(1:1)) 的结果是

【Excel】查找最后一次出现的位置 - 图4
EXCEL 帮助里的备注:
【Excel】查找最后一次出现的位置 - 图5
本例中的 LOOKUP 函数在 0/(MID(A1(字符串所在单元格),COLUMN(1:1),1)=”\”) 里是找不到 1 的,所以它找到的是 0,但在 0/(MID(A1(字符串所在单元格),COLUMN(1:1),1)=”\”) 里有多个 0,从结果来看,它找到的是最后一个 0。(为什么?在 EXCEL 帮助里没有找到相关说明)