【社区答疑】WPS表格利用新函数批量根据序号换行之批量字符替换SUBSTITUTES函数法(一)
WPS函数专家
要想下班早,表格必须用的好!
大家好,我是张俊。
⭐场景
今天在社区交流群里,接到@馒头鱼求助,希望将很多单元格中的内容,根据序号批量增加换行符,左侧单元格为原始数据,右侧单元格为期待效果,如下图所示:
- 问题和思路分析
通过图片可以看到,需要都是从1-9的数字,并且典型标志是后面都有个圆点(.)。如果需要换行的需要需要使用函数CHAR(10)来处理,而需要批量数据换行,那就可以使用批量字符替换的SUBSTITUTES函数,可以批量的将原来的字符替换所需字符。
- 批量字符替换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表格利用新函数批量根据序号换行👈 |
个人往期帖子合集:【帖子合集】个人往期帖子合集来了!
创作者俱乐部成员
WPS函数专家
WPS函数专家
WPS函数专家
WPS函数专家