如何在 Excel 中反转字符串?

如何在 Excel 中反转字符串?

是否有一个 Excel 函数(或宏)可以用来反转字符串。即these words变成sdrow eseht

这就是为什么我需要它:

我的字符串类似于John|XYZ Street|215|USA,我需要找到最后一个字符后的文本|

因此,我考虑反转字符串以找到|其中 FIRST 之前的文本。如果有人知道任何其他方法来找到 LAST |,这可能是一个有用的解决方案。

|注 1:字符串的数量各不相同;因此,搜索第 3 个|将不起作用。

注2:我知道文本到列按钮,但我不能使用它,因为它会影响我的工作表的所有结构。

答案1

这是一个选项:

在此处输入图片描述

公式B1

=TRIM(RIGHT(SUBSTITUTE(A1,"|",REPT(" ",LEN(A1))),LEN(A1)))

这基本上是对此的一个小改编来源的关于如何找到单元格“最后一个单词”的解释。我只是将普通句子中的空格替换为管道符号。


因为从技术上讲你不是在要求它,而是为了反转文本字符串,所以你可以查看同一个网站的解释如何做到这一点。

答案2

您可以使用这个 LET 公式:

=LET( string, D6,
       L, LEN( string ),
       CONCAT( MID( string, SEQUENCE( 1, L, L, -1), 1) ) )

它将字符串分解为 1 个字符的单元格数组,然后以相反的顺序将它们重新组合成连接的字符串。

阅读了完整的问题陈述后,这里有一个可以解决此问题的方法。它不依赖于反转字符串,但我明白你为什么要这样做。

首先,让我们制作一个字符串分割器:

=LET( string, A1,
       delimiter, A2,
       IF( ISBLANK( string ), "",
             IF( LEN( delimiter ) = 0,
                   MID( string, SEQUENCE( 1, LEN( string ) ), 1),
                   TRANSPOSE( FILTERXML( "<main><sub>" & SUBSTITUTE( string, delimiter, "</sub><sub>" ) & "</sub></main>", "//sub" ) ) ) )
     )

这只是根据分隔符将单元格内容拆分为一个值数组。现在您可以修改它以获取数组的最后一个元素。以下是其中一种方法:

=LET( string, A1,
       delimiter, A2,
       strArray, IF( ISBLANK( string ), "",
                             IF( LEN( delimiter ) = 0,
                                  MID( string, SEQUENCE( 1, LEN( string ) ), 1),
                                  TRANSPOSE( FILTERXML( "<main><sub>" & SUBSTITUTE( string, delimiter, "</sub><sub>" ) & "</sub></main>", "//sub" ) ) ) ),
       elements, COUNTA( strArray ),
       INDEX( strArray, 1, elements )
     )

它有点重,但用途也很广泛。

答案3

A1 空白,A2 为要反转的字符串,B1 为零,B2 中有一个公式,它是形式为 的链=IFERROR(MID($A2,25+B$1*25,1)&IFERROR(MID($A2,24+B$1*25,1)&..... ,依此类推,其中术语 '25+' 按照所示逐步减少到 1。

当 B$1 包含 0 时,这将反转任何长度不超过 25 个字符的字符串。

为了将其缩放到更长的字符串,比如说 100 个字符,将公式复制到 C2:E2,其中 C1:E1 为 1、2 和 3。

然后在 F2 中,有=E2&D2&C2&B2,它将保存整个字符串的反转。

给定足够多的列,或者用行而不是列来做一些非常相似的事情,你原则上可以逆转《战争与和平》,如果你可以把它放入一个单元格中。

但最重要的是它可以扩展,你不需要知道字符串到底有多长;一列版本将处理 25、10 甚至零个字符而不会出错。

是的,我知道有一个 VBA 函数可以做到这一点;但在我的工作中,信息技术的预防者 Mordac 仍然活得很好,不喜欢.xlsm

相关内容