如何在Google Sheets中查找字符串中某字符的最后出现位置?
Google Sheets 函数解决方案:字符最后出现位置与文件名内容提取
一、获取特定字符(短横线)的最后出现位置
要实现类似“从右侧开始的FIND”功能,定位字符串中最后一个短横线的位置,可以使用以下组合公式:
=FIND("@", SUBSTITUTE(A1, "-", "@", LEN(A1)-LEN(SUBSTITUTE(A1, "-", ""))))
公式说明
LEN(A1)-LEN(SUBSTITUTE(A1, "-", "")):计算目标字符串中短横线的总数量SUBSTITUTE(A1, "-", "@", N):将字符串中第N个短横线替换为特殊字符@(这里N就是短横线的总数量,即最后一个短横线)FIND("@", ...):查找替换后@的位置,也就是原字符串中最后一个短横线的位置
示例验证
针对你提供的数据集:
- 当单元格内容为
ABC-DEF-GHI时,公式返回8 - 当单元格内容为
ABCD-EF-GH-IJK时,公式返回11 - 当单元格内容为
AB-C-DE-FGH-I-JK时,公式返回14
二、提取文件名结尾的学生姓名(格式:- ***.png)
针对文件名以- 学生姓名.png结尾的格式,这里提供两种可靠的提取方法:
方法1:使用REGEXEXTRACT(推荐)
正则表达式能高效适配长度可变、包含空格的姓名提取,公式如下:
=REGEXEXTRACT(A1, "-(.*)\.png$")
公式说明
-(.*):匹配最后一个短横线之后的所有内容(.*支持任意长度的任意字符,包括空格)\.png$:匹配字符串结尾的.png(\是转义符,避免.被正则当作通配符)- 括号包裹的
(.*)会直接提取出中间的学生姓名部分
方法2:使用MID结合位置公式
如果偏好使用基础函数组合,可以基于第一部分的位置公式实现:
=MID(A1, FIND("@", SUBSTITUTE(A1, "-", "@", LEN(A1)-LEN(SUBSTITUTE(A1, "-", "")))) + 1, LEN(A1) - FIND("@", SUBSTITUTE(A1, "-", "@", LEN(A1)-LEN(SUBSTITUTE(A1, "-", "")))) - 4)
公式说明
FIND(...) +1:定位到最后一个短横线的下一个字符,作为姓名的起始位置LEN(A1) - FIND(...) -4:计算姓名的长度(总长度减去最后一个短横线的位置,再减去.png的4个字符长度)MID(A1, 起始位置, 长度):精准提取出中间的学生姓名
内容的提问来源于stack exchange,提问作者Justin Julius Ayran
相关产品推荐
相关产品推荐

