乐于分享
好东西不私藏

WPS表格如何实现字符串反转?三种方法分享给你

WPS表格如何实现字符串反转?三种方法分享给你

有网友咨询了这样一个问题:在WPS表格中,怎么生成反转的字符串?比如原字符串是”asdf”,反转以后变成”fdsa”。如下图所示:

这个问题在日常数据处理中其实挺常见的,今天就跟大家分享三种方法。

方法一:MID + CONCAT 法(最直观)

我们利用 MID 函数进行截取,将字符串单个单个地拆开,再从后往前提取。

思路是这样的:

先算出字符串总共有几个字符,然后用 MID 从后往前依次截取每个字符,最后用 CONCAT 函数把它们连接起来。

公式如下:

=CONCAT(MID(A2,LEN(A2)-SEQUENCE(LEN(A2))+1,1))

来拆解一下这个公式:

LEN(A2) 获取字符串长度

SEQUENCE(LEN(A2))生成从1到字符串长度的序号序列

LEN(A2)-SEQUENCE(LEN(A2))+1 ,把序号反过来,变成从后往前的顺序

MID 按这个反序依次截取每个字符

CONCAT 把所有截取的字符连起来

输入公式后回车,双击填充柄就能得到结果了。具体操作如动图演所示:

方法二:REDUCE + LAMBDA 法(进阶用法)

我们用 REDUCE 函数配合 LAMBDA 来实现,这个方法更简洁,思路也更巧妙。

公式如下:

=REDUCE(,MID(A2,SEQUENCE(LEN(A2)),1),LAMBDA(x,y,y&x))

这个公式怎么理解呢?

REDUCE 的第一个参数是空值 “”,作为初始值

第二个参数是用 MID 把字符串拆成单个字符的数组

第三个参数是 LAMBDA 表达式,其中 x 是累积值,y 是当前字符

y & x 让新字符拼接到旧字符前面,这样就实现了反转

简单说,就是每次把新截取的字符放到前面,之前的结果放到后面,遍历完整个字符串,反转就完成了。

同样,回车后双击填充即可。具体操作如动图演所示:

当然,如果你用的 Excel 版本较低或者 WPS 版本较低,没有 REDUCE 和 LAMBDA 函数,也别着急,咱们看第三种方法。

方法三:ROW + INDIRECT + MID + CONCAT 法(通用兜底)

用传统的 ROW 函数配合 INDIRECT 来生成序号,同样可以实现反转。

公式如下:

=CONCAT(MID(A2, LEN(A2)-ROW(INDIRECT(“1:”&LEN(A2)))+1, 1))

这个公式看起来跟方法一有点像,但思路更直接一些:

ROW(INDIRECT(“1:”&LEN(A2))) 直接用 INDIRECT 生成 1:4 这样的区域引用

ROW 把它转成 {1;2;3;4} 这样的纵向数组

ROW(INDIRECT(“1:”&LEN(A2)))+1 转成 {4;3;2;1},实现了从后往前截取

MID 按反序截取每个字符

CONCAT 连接起来

这个方法的优势在于兼容性好,不依赖新版本的函数,大部分场景都能用。具体操作如动图演所示:

总结对比

三种方法各有千秋,大家可以根据自己的 WPS 版本和个人习惯来选择。

今天的分享就到这里。关于字符串反转,你是否还有更好的解决方法?欢迎留言分享!

我是墨云轩,热衷分享办公小技巧,边学习,边分享,每天进步一点点!感谢您的阅读!