南漳世纪名都-ZFH-1
南漳长兴彩钢厂-H5H-2612
南漳东方曼哈顿-HLH-2
今天有很多这种格式的数据,需要提取最后一个“-”字符以前的数据。提取最后一个“-”字符以前的数据,最关键的是从左往右找到最后一个“-”字符的位置或者可以从右向左查找“-”出现的首个位置。
EXCEL里面FIND函数是从左向右查找,没有从右往左查找的函数。
优快云上面 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函数返回所需要的数据