有一些内置函数可以让您将多个单元格组合成一个单元格,每个单元格之间有一个分隔符。
假设您想将单元格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 函数的用法相同。)