答案1
="("&A1&")|("&A2&")|("&A3&")|("&A4&")"
如果 A 列中使用的范围包含大量数据(或有时会发生变化),您应该使用 vba 代码来生成结果。
答案2
您可以使用 VBA 代码自定义函数来实现这一点。
在 Excel 表中按 ALT+F11 打开 VBA 编辑器。从文件菜单中插入一个模块,然后双击左窗格中的模块名称(如果需要)以打开源代码编辑器。将以下代码粘贴到其中。
Function TXTJOIN(argument1 As Range) 'Accept input range
rowcounter = argument1.Rows.Count
If rowcounter > 255 Then
TXTJOIN = CVErr(xlErrValue) 'If row counter > 255 return #VALUE! Error
Exit Function
End If
colcounter = argument1.Columns.Count ' Check the number of columns in the input range
If colcounter = 1 Then 'Process if it's a single column range
For Each element In argument1
result = result & "(" & element & ")" & "|"
Next element
TXTJOIN = Left(result, Len(result) - 1)
Else
TXTJOIN = CVErr(xlErrValue) 'If it's a multicolumn range, return #VALUE! Error
End If
End Function
保存代码并退出。如果您使用的是 Office 2007 及更高版本,则需要将 Excel 工作簿保存为启用宏的 .xlsm Excel 工作簿。
这样,我们就创建了一个名为 TXTJOIN 的自定义函数。
现在在您的工作表中使用它,如下图所示。
请注意,此自定义函数已简化为仅适用于单列。向其传递多列范围将返回 #VALUE!错误。这仅适用于此工作簿,因为此工作簿中存在代码。此外,为了避免将 A:A 传递给它,它限制最多连接 255 个单元格。