Excel | 去掉最后一个特殊符号及以后内容

一起来学Office , 提高工作效率
问题来源
今天一位做系统开发的同事 , 给我以下样表:
Excel | 去掉最后一个特殊符号及以后内容
文章图片

文章图片
由于导入系统需要 , 需要把每个“档号”的最后一个“-”符号及以后内容的内容去掉(上图中的红色部分) 。
需要解决两个难点:
数据有几万行 , 不可能手工去除;
每个“档号”长度不一 , 不能用简单的MID、RIGHT、LEFT等函数 。
韩老师给出两种解决方案:
快速填充;
公式 。
快速填充
复制出第一个 , Ctrl+E快速填充 , 如下动图:
Excel | 去掉最后一个特殊符号及以后内容
文章图片

文章图片
快速填充虽然简单 , 但有版本要求 。韩老师用的EXCEL2016可以使用 , EXCEL2013韩老师没有用过 , 据说可以 。但2010版本及以下肯定是不能用快速填充的 。
【Excel | 去掉最后一个特殊符号及以后内容】公式实现
在B2单元格输入公式:
=MID(A2,1,LOOKUP(9^9,FIND("-",A2,ROW($1:$30)))-1)
可得第一个结果 , 公式向下填充即可实现所有档号修改 。
Excel | 去掉最后一个特殊符号及以后内容
文章图片

文章图片
公式解析
FIND("-",A2,ROW($1:$30)):
在A2单元格字符串中的第一位开始到第30位寻找字符“-” , 此部分的返回值是下图中的划红线部分:
Excel | 去掉最后一个特殊符号及以后内容
文章图片

文章图片
其中查找到第30位 , 是因为“档号”最长不过30位 , 此数值可以根据实际更改 。
LOOKUP(9^9,FIND("-",A2,ROW($1:$30))):
在上述数值中查找一个极大值9^9 , 因为查不到这个值 , 所以返回最后一个值20.
MID(A2,1,LOOKUP(9^9,FIND("-",A2,ROW($1:$30)))-1):
从A2字符串中从第一位取到第19位 , 即得结果 。
相关知识:
来源:韩老师讲office