【社区答疑】WPS表格利用新函数批量根据序号换行之正则表达式REGEXP函数法(二)

张俊
张俊

WPS函数专家

要想下班早,表格必须用的好!

大家好,我是张俊。

场景

关于@馒头鱼求助问题的第二种方法来了,希望将很多单元格中的内容,根据序号批量增加换行符,左侧单元格为原始数据,右侧单元格为期待效果,如下图所示:

昨天已经发过一帖说说明了一种简单容易理解的方法,【社区答疑】WPS表格利用新函数批量根据序号换行之批量替换字符SUBSTITUTES函数法(一),如有宝子们感兴趣可以参考。其实对于替换字符类场景,正则表达式REGEXP函数也是可以解决的,今天就来分享第二种方法看如何来解决此问题。

1. 正则表达式REGEXP函数

对于本案例来说,用到了替换功能,其实新函数REGEXP也是支持对匹配的数据替换,REGEXP函数基本语法如下:

=REGEXP(原始字符串,正则表达式,[匹配模式],[替换内容])

REGEXP函数简单来理解,就是将参数1的内容,根据参数2的正则表达式规则匹配数据后,根据参数3选择方法,如选择为2(替换),则可以在参数4中填写需要替换的内容。参数3的可选内容如下:

因此利用这一特性,也可以将本案例中的数据来匹配序号1-9包含后面的圆点(.),最终将其替换即可,具体完整函数写法如下:

=REGEXP(C3,"(\d\.)",2,CHAR(10)&"\1")

📢

函数解释:

1.正则表达式中的\d代表匹配一个数字,如果是2位或多位的,可以使用\d+,表示匹配一个或多个连续数字。

2.正则表达式中\.代表一个圆点,为啥不直接写圆点(.)呢?因为.在正则表达式中代表匹配任意单个字符(除换行符),因此想要表达.就需要用转义符\对其转义,因此写作\.

3.正则表达式中的一对圆括号()表示对其分组,因此需要输入(\d\.)表示对匹配的数字和圆点分为一组,主要为了后期替换内容做铺垫。

4.正则表达式中的\1意义是前面正则表示已经有捕获的分组,也就是用()匹配的,则\1表示前面第一个捕获分子的内容引用。本案例中表示序号1-9和后面的圆点(.)。

通过REGEXP函数得到效果如下:

💡

通过效果图可以发现2个问题:

1.每个匹配的数据前面都有一个空行,主要是因为每个匹配的内容前面都有一个换行符CHAR(10),因此需要将其处理,需要将(\d\.)调整为不包含1的就可以,那就调整为([2-9]\.),代表只考虑2-9的数字就行,如果是序号在100以内,可以考虑将其调整为2-99即可。

2.如果目标列为空,则会报错#VALUE!,那就需要在前面嵌套IFERROR函数来规避错误,IFERROR函数主要处理参数1,如果参数报错,则直接返回参数2的结果。

通过以上问题发现和调整,最终完整公式如下:

=IFERROR(REGEXP(C3,"([2-9]\.)",2,CHAR(10)&"\1"),"")

最终效果图如下:

2. 大佬提供公式

针对这个问题,在大佬眼里,也有不同的解题思路,具体如下:

2.1 TEXTJOIN+REGEXP函数法

大佬提供的第一种思路就是利用TEXTJOIN函数的连续拼接字符来处理,具体完整函数写法如下:

=TEXTJOIN(CHAR(10),1,REGEXP(C3,"\d+\..+?(?=\d\.|$)"))

具体效果如下图所示:

2.2 REGEXP函数强制换行法

大佬的另外一种思路是对REGEXP函数的第四个参数强制换行(快捷键:Alt+Enter<回车>),具体完整函数写法如下:

=REGEXP(C3,"(?<!^)(\d\.)",2,"

\1")

函数效果图如下:

2.3 根据大佬思路改编

根据2.2大佬的思路,可以对我们的函数进行改编,也直接利用强制换行法(快捷键:Alt+Enter<回车>),来省略函数字符,具体完整函数写法如下:

=REGEXP(C3,"([2-9]\.)",2,"

\1")

函数效果图如下:

对于大佬们的公式,由于对于初学者理解难度较大,因此在这里对于函数不做解释。也欢迎大佬们在评论区说出你们其他的函数方法。

都看到这里了,记得得❤️❤️❤️点赞(红心❤️❤️❤️收藏(五角星并在评论区评论“我学会了!”,您的❤️❤️❤️点赞(红心❤️❤️❤️收藏(五角星和评论是对我最大的支持!

🚩

练习文件:👉【社区答疑】WPS表格利用新函数批量根据序号换行👈


上期帖子地址:

【社区答疑】WPS表格利用新函数批量根据序号换行之批量替换字符SUBSTITUTES函数法(一)

个人往期帖子合集:【帖子合集】个人往期帖子合集来了!

你学会了吗?
学会了!
6 (50%)
太难了!
4 (50%)
10人参与 截止时间:2025/02/28 15:59:59
上海
浏览 202
3
11
分享
11 +1
6
3 +1
全部评论 6
 
王禹成
王禹成

创作者俱乐部成员

先收藏
· 浙江省
回复
 
1231393578237
点赞学习
· 四川省
回复
 
wps新路
wps新路

WPS函数专家

俊哥厉害。跟着学习
· 重庆
回复
 
HC.旋
跟着俊哥学习
· 福建省
回复
 
清华学弟任泽岩
清华学弟任泽岩

创作者俱乐部成员

俊哥发力了!
· 辽宁省
回复
 
亂雲飛渡
点赞学习
· 广东省
回复