【问题标题】:Reversing Text to Columns in Excel/Calc在 Excel/Calc 中将文本反转为列
【发布时间】:2018-04-04 03:32:05
【问题描述】:

我用过的大多数电子表格软件都有一个text-to-columns 功能,它使用多个标准(分隔符、字符# 等)将一列拆分为多列。我想反向

我知道我可以使用一个公式来创建第三列,其中两个单元格的值连接在一起并在它们之间加上一个分隔符,但这似乎很笨拙。

为什么这不是内置函数?还是在我看不到的地方?

【问题讨论】:

  • 哪个版本的 Excel?
  • 任何版本。我目前正在使用 Libreoffice calc 5.1.1.3。我在工作中使用 Excel,但我不确定实际版本。

标签: excel string vba libreoffice-calc text-manipulation


【解决方案1】:

有一些内置函数可以让您将多个单元格组合成一个单元格,每个单元格之间有一个分隔符。

假设您想将单元格A1 连接到A5,并在每个值之间使用,


Excel 2016

=TEXTJOIN(",",TRUE,A1:A5)

旧 Excel 版本

您可以轻松地组合而无需分隔符:

=CONCAT(A1:A5)

与 concat 等效的是 & 文本运算符,您可以像这样使用它:

=A1 & A2 & A3 & A4 & A5

...与CONCAT 的结果相同。添加逗号分隔符:

=A1 & "," & A2 & "," & A3 & "," & A4 & "," & A5

替换TEXTJOIN函数

更好的是,我们可以构建自己的TEXTJOIN 版本,我将其称为TXTJOIN

Function TxtJoin(delim As String, ignoreEmpty As Boolean, rg As Range) As String
    Dim c As Range
    For Each c In rg
        If Not ignoreEmpty Or Not IsEmpty(c) Then TxtJoin = TxtJoin & delim & c
    Next c
    If TxtJoin <> "" Then TxtJoin = Mid(TxtJoin, Len(delim) + 1)
End Function

第一个参数delim 是每个值之间的分隔符,可以是一个或多个字符,甚至可以是特殊字符,例如用于换行的CHAR(10)(将显示在具有Word自动换行。)

第二个参数ignoreEmpty 如果您希望结果中包含空白单元格,则第二个参数ignoreEmpty 可以为 FALSE,每个单元格之间有一个分隔符,或 TRUE 以跳过空白单元格。 (显然,如果指定范围没有空白单元格,那么您选择什么选项都没有关系。)

第三个参数是单元格范围。如果指定了不止一行或一列,则公式将从右到左读取,然后从上到下读取。

在我们的示例中,您可以像这样使用它:

=TxtJoin(",",TRUE,A1:A5)

(这与 Excel 2016 的 TEXTJOIN 函数的用法相同。)

【讨论】:

  • 我从未使用过 LibreOffice,所以我不知道这些示例中的功能是否相同。 (您知道吗,作为 developerstudent您可以免费获得 Office 365 以及其他好东西?...不是试用版;完全微软免费提供。)
  • 我很抱歉。我知道这些可以在公式中使用的函数。内置功能,我的意思是一个类似于文本到列功能的软件自动化的内置功能。
  • 什么意思? “由软件自动化”?也许你应该先举一些例子,说明你拥有什么以及你需要什么,然后其他人再花时间在这上面。
  • 在电子表格软件中,有内置的文本到列功能(在菜单中)。就像我在问题中特别提到的那样,我知道使用公式实现相同结果的方法。我也可以在单元格中使用公式来实现“文本到列”,但是 Excel、Calc 等内置了这个功能。为什么它们也没有内置函数来做相反的事情?
【解决方案2】:

这适用于 LibreOffice 5.4.3.2。如果它在您的版本中不起作用,您可能需要下载并安装更新的版本。

=TEXTJOIN(",";;A1:A5)

我所说的内置功能,是指一种由软件自动化的类似于文本到列功能的内置功能。

我没有看到这样的功能。不需要,因为电子表格功能运行良好。

【讨论】:

  • 我不知道 - 我也遇到了一些问题,因为 Excel 的功能没有像我想要的那样自动化......我一直在运行 CLEAN()FIXED(),一遍又一遍结束了,但是仍然在房子周围没有做任何事情。我对DOLLARS() 也没有更多的运气。这是虚假广告。
  • Jim,电子表格功能也可以很好地执行“文本到列”,但是该功能是内置的,为什么不反过来呢?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-03-10
  • 2015-12-25
  • 2020-03-08
  • 1970-01-01
  • 1970-01-01
  • 2021-12-06
  • 1970-01-01
相关资源
最近更新 更多