我使用的大多数电子表格软件都有一个 text-to-columns 函数,它使用多个条件(分隔符,字符数等)将单个列拆分为多个列。我想这样做反向。
我知道我可以使用公式来创建第三列,其中两个单元格的值连接在一起,并且它们之间有一个分隔符,但这看起来很笨拙。
为什么这不是内置功能?还是在某个我看不到的地方?
答案 0 :(得分:3)
有一些内置函数可以将多个单元格组合成一个单元格,每个单元格之间都有一个分隔符。
假设您想要将单元格A1
加入A5
,并在每个值之间加,
。
=TEXTJOIN(",",TRUE,A1:A5)
您可以轻松地将与分隔符组合在一起:
=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 Wrap 。)
如果您希望结果中包含空白单元格,并且每个单元格之间具有分隔符,则第二个参数ignoreEmpty
可以为FALSE,或者为TRUE以跳过空白单元格。 (显然,如果指定的范围没有空白单元格,那么选择哪个选项并不重要。)
第三个参数是一系列单元格。如果指定了多个行或列,则公式将从右向左,从上到下阅读。
通过我们的示例,您可以像以下一样使用它:
=TxtJoin(",",TRUE,A1:A5)
(这与Excel 2016&#39 {s} TEXTJOIN
功能的用法相同。)
答案 1 :(得分:0)
这适用于LibreOffice 5.4.3.2。如果它在您的版本中不起作用,您可能需要下载并安装较新版本。
=TEXTJOIN(",";;A1:A5)
通过内置功能,我的意思是通过类似于Text-to-columns功能的软件自动内置。
我没有看到这样的功能。因为电子表格功能运行良好,所以不需要它。