编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

如何解决:字符串字符之间加分隔符

wxchong 2025-09-04 20:08:55 开源技术 3 ℃ 0 评论

今天我们来看看萌新小白、套娃宗师、正则教父、代码老炮都是如何解决字符串字符之间加分隔符的。每一种段位都是大家对Excel运用能力在不同阶段的表现。大家可以对号入座,看看自己属于哪种段位



如下图所示

A列为一列任意数据,每个单元格中都有一串字符串。我们想要对每个单元格内各字符之间都加上一个分隔符“-”,效果就像B列那样。




萌新小白


萌新小白的特点是:很执着,不怕费力,就算是干个通宵也要让领导满意。会使用SUM、IF等基础函数,能完成简单加减乘除,但遇到嵌套公式就需要疯狂百度。


萌新小白通常这样做:鼠标双击每个单元格进入编辑状态,用犀利的眼神点击每个字符的交界处,指尖潇洒的按下键盘上的“-”。


面对几千行的数据,简直能直接干到吐血。在致富的道路上,献出了自己宝贵的生命。




套娃宗师


套娃宗师掌握了一定基础的Excel技能,对一些常用的函数组合能够实现独立的运用。熟练VLOOKUP+IF+AND函数组合,还能写出=IFERROR(VLOOKUP(...), "未找到")这类“防呆”公式。用INDEX+MATCH双剑合璧替代VLOOKUP,还能时不时调侃同事的公式太“青铜”。会拆解嵌套公式,像玩解谜游戏一样,每一层嵌套都是新的关卡,最终弄懂每个步骤时成就感超级爆棚



套娃宗师是这样做的


首先输入公式:

=ROW($1:$7)


用ROW函数获取1~7行的行号:{1;2;3;4;5;6;7},以数组溢出的形式储存1~7这7个数字。


注意,行号的最大值一定要大于等于A列最长的字符串的长度,为了不每次思考这个问题,我们可以取一个较大值,比如ROW($1:$100),以满足每种可能性。




然后嵌套MID函数:

=MID(A2,ROW($1:$7),1)


在A2字符串中,分别从第1~第7个字符处开始提取,提取1个字符长度的内容,这样A2单元格的每个单独的字符就会分别被提取出来,而超过字符串总长度的部分默认显示空白,最终形成由各独立字符与空白单元格组成的数组溢出结果。




最后嵌套TEXTJOIN函数:

=TEXTJOIN("-",,MID(A2,ROW($1:$7),1))


将上一步分别提取到的各个独立字符,用分隔符“-”,忽略空白单元格后合并至一个单元格显示。




正则教父


正则教父不仅继承了套娃宗师的衣钵,还对正则表达式展现出了严重痴迷的状态。痴迷者倾向于用几个字符的正则代码代替复杂的嵌套公式,甚至陷入“万物皆可正则”的思维模式。这不仅是对正则函数高效性与简洁性的崇拜,更能通过挑战复杂模式,获得异于常人的成就感。


小编还是建议:正则表达式如同编程中的“魔法咒语”,痴迷者需要在自己的能力范围内找到平衡,掌握其精髓而非滥用,才能真正发挥其便利性,使其成为快速解决问题的首选工具。


正则教父是这样做的


输入REGEXP正则表达式函数(WPS版):

=REGEXP(A2,"(.)",2,"\1-")


(.):匹配任意单个字符(除换行符外)并捕获为分组\1。


\1-:将每个匹配的字符(分组\1)替换为:字符+“-”(\1-)。


我们发现加上分隔符后的字符串末尾多了一个“-”。




继续完善正则表达式部分:

=REGEXP(A2,"(.)(?!$)",2,"\1-")


$:字符串末尾


(?!$):负向零宽断言,确保匹配的字符不在字符串末尾(避免末尾多一个“-”)。




代码老炮


VBA代码老炮,通常表现为对自动化能力的极致追求,甚至将VBA视为解决一切办公问题的“万能钥匙”。使用VBA代码可以高效解决问题并获得成就感,VBA高手常被视为“技术大神”,获得同事依赖和领导赏识。


VBA代码老炮是这样做的


Alt+F11打开代码编辑器,点击 插入-模块,将下面一段代码复制粘贴到代码编辑框:


Function InsertHyphen(text As String) As String

Dim result As String

Dim i As Integer

For i = 1 To Len(text)

result = result & Mid(text, i, 1)

If i < Len(text) Then result = result & "-"

Next i

InsertHyphen = result

End Function




回到Excel主界面,在B列输入公式:

=InsertHyphen(A2)

下拉填充公式,即可得到全部结果。


本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表