Excel函数技巧:利用reduce和substitute函数实现文本换行
在Excel中,使用函数技巧能够让我们更高效地处理数据和文本。其中,利用reduce函数可以帮助我们简化复杂的计算过程,而substitute函数则可以实现文本的替换操作。通过结合这两个函数,我们可以实现文本的换行操作,使得数据更加清晰易读。在操作时,只需简单地在需要换行的地方插入特定的符号,然后利用reduce和substitute函数即可完成文本换行的操作。这样,我们在处理数据和文本时将更加得心应手。

如图,想要将B3里的这几段文字,拆分成A列一行一行,每行字符数最多为42个,同时每段段首要缩进,遇到段落要换行。公式如下:
=DROP(REDUCE(" "&SUBSTITUTE(B3,CHAR(10),CHAR(10)&" "),SEQUENCE(20),LAMBDA(x,y,LET(
n,MID(TAKE(x,1),1,42),
m,IF(ISNUMBER(FIND(CHAR(10),n)),MID(TAKE(x,1),1,FIND(CHAR(10),n)),n),
VSTACK(SUBSTITUTE(x,m,""),m)))),1)
公式思路:公式使用reduce函数解决问题,其中初始值设定为:
" "&SUBSTITUTE(B3,CHAR(10),CHAR(10)&" "),意思是为每一段加段首空格。利用char(10)的段尾标记为下一段添加段首空格。
变量n:选取变量x的第一行,从第一个开始,提取42个字符。
变量m:判断n提取的字符串中是否含有char(10),也就是断行符号。如果有,则从第一个开始提取到断行符处。没有就用n的取值。
VSTACK(SUBSTITUTE(x,m,""),m)))),1):将提取的字符串m从x中删除,以便下一次循环时提取一下断。然后将删除后的作为第一行,提取的字符m作为第二行,形成新的x。
reduce的二参起着控制循环次数的作用,并不参与运算。