我使用过的大多数电子表格软件都有一个“文本到列”功能,它可以使用几个条件(分隔符、字符数等)将单个列拆分成多个列。我想要反向进行这个操作。
我知道可以使用公式创建第三列,并在两个单元格之间使用分隔符连接它们的值,但这种方法看起来很笨拙。
为什么没有内置此功能?还是说我找不到它的位置?
我知道可以使用公式创建第三列,并在两个单元格之间使用分隔符连接它们的值,但这种方法看起来很笨拙。
为什么没有内置此功能?还是说我找不到它的位置?
有内置功能可以让你将多个单元格合并为一个,并在每个值之间添加分隔符。
假设你想要使用,
号将单元格A1
到A5
合并在一起。
=TEXTJOIN(",",TRUE,A1:A5)
您可以轻松地进行无分隔符的合并:
=CONCAT(A1:A5)
相当于concat的是&
文本运算符,您可以这样使用:
=A1 & A2 & A3 & A4 & A5
要获得与 CONCAT
相同的结果,可以使用 GROUP_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)
表示换行符(它将显示在启用“自动换行”的单元格中)。ignoreEmpty
可以为FALSE,这样您就可以在结果中包含空单元格,并在它们之间使用分隔符,或者为TRUE,以跳过空单元格。(显然,如果指定的范围没有空单元格,则无论选择什么选项都无所谓。)=TxtJoin(",",TRUE,A1:A5)
TEXTJOIN
函数用法相同。)这在LibreOffice 5.4.3.2中有效。如果在您的版本中无法工作,您可能需要下载并安装更新版本。
=TEXTJOIN(",";;A1:A5)
CLEAN()
和 FIXED()
,但是家务活仍然没有完成。我使用 DOLLARS()
也没有更多的好运。这是虚假广告。 - ashleedawg