提取单元格中某字符最后出现位置之前的数据

本文介绍了如何在Excel中提取最后一个'-'字符前的数据,主要利用SUBSTITUTE、LEN和LEFT函数组合,通过查找字符出现的次数和位置来实现。这种方法适用于需要从复杂字符串中提取特定部分的情况。
摘要由CSDN通过智能技术生成

南漳世纪名都-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函数返回所需要的数据

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值