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

张俊
张俊

WPS函数专家

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

大家好,我是张俊。

场景

今天在社区交流群里,接到@馒头鱼求助,希望将很多单元格中的内容,根据序号批量增加换行符,左侧单元格为原始数据,右侧单元格为期待效果,如下图所示:

  1. 问题和思路分析

通过图片可以看到,需要都是从1-9的数字,并且典型标志是后面都有个圆点(.)。如果需要换行的需要需要使用函数CHAR(10)来处理,而需要批量数据换行,那就可以使用批量字符替换的SUBSTITUTES函数,可以批量的将原来的字符替换所需字符。

  1. 批量字符替换SUBSTITUTES函数

SUBSTITUTES函数基本语法如下:

SUBSTITUTES(字符串,原字符串,[新字符串],[替换序号])

其实SUBSTITUTES函数简单来理解,就是将参数1的内容根据参数2的内容替换为参数3,另外参数2和参数3支持数组方法批量对应替换。

应用到本案例就是将1-9及后面的圆点在前面增加上换行符号即可,1-9及后面的圆点需要利用函数构造,而换行符使用函数CHAR(10)表示。

2.1构造指定序号

2.1.1 直接写法

{"1.";"2.";"3.";"4.";"5.";"6.";"7.";"8.";"9."}

最直接的写法就是手工写,这样写起来比较费劲,并且如果需要变动,调整起来不太方便。因此可以使用函数法。

2.1.2 SEQUENCE函数法

关于SEQUENCE函数基本用法进阶用法,可以对应帖子(基本用法:https://bbs.wps.cn/topic/10490?chan=share&fromshare=copylink;进阶帖子:https://bbs.wps.cn/topic/10569?chan=share&fromshare=copylink),在这里不再赘述。

如果需要生成1-9的序号可以直接SEQUENCE(9)就可以生成1-9的序号,如果需要加上圆点可以在后面连接&".",内容如下:

=SEQUENCE(9)&"."

2.1.3 ROW函数法

如果使用老函数也可以完成,可使用ROW函数来生成1-9的序号,具体如下:

=ROW($A$1:$A$9)

如果喜欢卷字符的宝子们可以使用更加简洁的方法,具体如下:

=ROW($1:$9)

📢

这是以前利用老函数生成序号的方法,现在有了新函数SEQUENCE后,推荐使用SEQUENCE函数法,毕竟=ROW($1:$9)计算效率太慢,=ROW($A$1:$A$9)如因A1:A9单元格区域被删除,会报错,因此后面案例都是以SEQUENCE函数为例。

如需构造批量换行的内容,只需在前面输入CHAR(10)&即可,具体如下:

=CHAR(10)&SEQUENCE(9)&"."

ROW函数的用法类似,具体为:=CHAR(10)&ROW($A$1:$A$9)=CHAR(10)&ROW($1:$9)

2.2 使用SUBSTITUTES函数批量替换

构造好后,直接使用SUBSTITUTES函数批量替换即可,完整函数如下:

=SUBSTITUTES(C3,SEQUENCE(9)&".",CHAR(10)&SEQUENCE(9)&".")

实现后的函数效果图如下所示:

通过效果图发现每个单元格的第一个行是空行,主要是因为在每个序号前面都增加了换行符CHAR(10),因此第一行也被换行,如果需要规避这个问题,可以让SEQUENCE函数的初始值,从2开始,因此将函数调整后,完整函数如下:

=SUBSTITUTES(C3,SEQUENCE(9,,2)&".",CHAR(10)&SEQUENCE(9,,2)&".")

ROW函数完整写法如下:

=SUBSTITUTES(C3,ROW($A$2:$A$9)&".",CHAR(10)&ROW($A$2:$A$9)&".")

ROW函数卷字符完整写法如下:

=SUBSTITUTES(C4,ROW($2:$9)&".",CHAR(10)&ROW($2:$9)&".")

2.3 使用LET函数简化

通过上述函数发现SEQUENCE(9,,2)&"."在函数中被2次使用,在其他函数案例中还可能会被多次调用,因此可以使用LET函数对其简化,LET函数中的参数1就是自定义名称(这里定义为a),参数2就是重复使用的表达式(此案例为:SEQUENCE(9,,2)&"."),如后面还有其他的,可以再次成对出现对其简化,本案例中只有一个,因此只用1组节课,简化后的完整函数如下:

=LET(a,SEQUENCE(9,,2)&".",SUBSTITUTES(C3,a,CHAR(10)&a))

ROW函数简化后完整写法如下:

=LET(a,ROW($A$2:$A$9)&".",SUBSTITUTES(C3,a,CHAR(10)&a))

ROW函数简化后卷字符完整写法如下:

=LET(a,ROW($2:$9)&".",SUBSTITUTES(C3,a,CHAR(10)&a))

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

🚩

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


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

【动态数组】以动态数组视角学习SEQUENCE函数基本用法

【动态数组】以动态数组视角学习SEQUENCE函数进阶用法

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

创作者俱乐部成员

这篇也先收藏
· 浙江省
回复
 
wps新路
wps新路

WPS函数专家

来晚了 给俊哥点赞,俊哥威武,向俊哥学习。
· 重庆
1
回复
张俊
张俊

WPS函数专家

跟着新路老师不迷路,新路老师带我上高速!
· 上海
回复
 
老实人,你们玩够了吗
大佬牛逼,学到了
· 广东省
1
回复
张俊
张俊

WPS函数专家

加油,期待能有更多一起学习和交流的机会!
· 上海
回复
 
⨂
写得很好,值得学习
· 中国
1
回复
张俊
张俊

WPS函数专家

加油, 共同学习,共同探讨!
· 上海
回复