提取单元格中某字符最后出现位置之前的数据
南漳世纪名都-ZFH-1
南漳长兴彩钢厂-H5H-2612
南漳东方曼哈顿-HLH-2
今天有很多这种格式的数据,需要提取最后一个“-”字符以前的数据。提取最后一个“-”字符以前的数据,最关键的是从左往右找到最后一个“-”字符的位置或者可以从右向左查找“-”出现的首个位置。
EXCEL里面FIND函数是从左向右查找,没有从右往左查找的函数。
CSDN上面 Excel公式:查找一单元格中某字符最后出现位置,为关键字可以查到不少方法。涉及VLOOKUP,MATCH等函数,还要用到数组,相对复杂。
直接用第一个方法解决问题。
提取最后一个“-”字符以前的数据,最关键的是要找到最后一个“-”字符的位置,然后用LEFT函数即可。
思路:先通过替换删除法算出原字符串中有多少个“-”,例如n个,然后将第n个“-”替换成“+”再查找“+”的位置。
例:E2单元格为 南漳世纪名都-ZFH-1
LEN(SUBSTITUTE(E2,"-","")
//将E2单元格中“-”替换为空,返回“-”替换为空后字符长度
LEN(E2)-LEN(SUBSTITUTE(E2,"-","")
//则字符长度减N,即E2中有N个“-”符号
SUBSTITUTE(E2,"-","+",LEN(E2)-LEN(SUBSTITUTE(E2,"-",""))
//将E2中第N个“-”替换为“+”
FIND("+",SUBSTITUTE(E2,"-","+",LEN(E2)-LEN(SUBSTITUTE(E2,"-",""))))-1
//返回E2中“+”的位置
=LEFT(E2,FIND("+",SUBSTITUTE(E2,"-","+",LEN(E2)-LEN(SUBSTITUTE(E2,"-",""))))-1)
//最后用LEFT函数返回所需要的数据
现在WPS最新版已新增AI写公式功能,将以上功能直接描述 提取A2 "-"之前的内容,然后生成公式
=LEFT(A2,FIND("-",A2)-1) ,确实比自己写的简洁,
FIND 用于查找其他文本字符串 (within_text) 内的文本字符串 (FIND_text),并从 within_text 的首字符开始返回 FIND_text 的起始位置编号。

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐




所有评论(0)