有朋友公司系统升级,需要将原旧代码变更一下,如旧代码为“K008-M01-003-002”需变更为只有一个“-”符号的新代码“K008-M01003002”,旧代码“-”符号可能有三个也可能有两个,但只要保留前面一个,后面的“-”符号去除。

这个需求很容易解决,即1.找到第一个“-”符;2.保留“-”符前的字串;3.“-”符后面的字串将“-”替换成空;4.如果没有“-”符则继续使用旧名称。公式如下:
=IF(ISERROR(FIND("-",A2)),A2,MID(A2,1,(FIND("-",A2)))&SUBSTITUTE(MID(A2,FIND("-",A2)+1,3000),"-",""))
解释:
FIND("-",A2):找到第一个“-”符所在的位置,如果没有“-”符则ISERROR为True。
MID(A2,起始位置,结尾位置):获得区间字串。
SUBSTITUTE(字串,"-",""):替代字串中的“-”字符为空。

公式向下填充后显示非常正确。EXCEL中的公式有很多,但是常用的不会很多,考验的只是对公式的灵活应用、组合应用,有了灵活应用、组合应用的心思技巧,某个公式记不起来百度一下用起来也非常美妙。
如果你有更方便的解决方法,敬请指教哦。本文来自于:发现数据
Excel中用SUBSTITUTE替换代码示例

本文介绍了如何使用Excel公式解决一个特定问题:将含有多个破折号的代码转换为只保留首个破折号的格式。通过FIND、MID和SUBSTITUTE函数的组合应用,实现了在保持原始信息的基础上,删除多余的破折号。如果单元格A2中的代码为'K008-M01-003-002',公式会将其转换为'K008-M01003002'。该方法适用于处理类似格式的字符串,即使没有破折号也能够正确处理。
最低0.47元/天 解锁文章
380

被折叠的 条评论
为什么被折叠?



