MS Excel - 具有分隔符的Concat [英] MS Excel - Concat with a delimiter
本文介绍了MS Excel - 具有分隔符的Concat的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个长的电子表格,数字。
I've got a long spreadsheet with numbers.
我需要将它们分隔成一个字符串,
例如4364453; 24332432; 2342432
I need to get them in one string delimited by ; eg. 4364453;24332432;2342432
我知道我可以做:
=concat(A1:A2000)
但是会将它合并在一个没有分隔符的字符串中 - 我可以
but that will merge it in one string without the delimiter - I can't seem to find an option for a delimiter when you specify a range.
谢谢
推荐答案
使用TEXTJOIN():
Use TEXTJOIN() instead:
=TEXTJOIN(";",TRUE,A1:A2000)
对于那些没有OFFICE 365 Excel然后使用这个模仿TEXTJOIN函数的UDF。
For those who do not have OFFICE 365 Excel then use this UDF that mimics the TEXTJOIN Function.
将其放在连接到工作簿的模块中,并使用上面的公式来调用。
Put this in a module attached to the workbook and use the formula above to call.
Function TEXTJOIN(delim As String, skipblank As Boolean, arr)
Dim d As Long
Dim c As Long
Dim arr2()
Dim t As Long, y As Long
t = -1
y = -1
If TypeName(arr) = "Range" Then
arr2 = arr.Value
Else
arr2 = arr
End If
On Error Resume Next
t = UBound(arr2, 2)
y = UBound(arr2, 1)
On Error GoTo 0
If t >= 0 And y >= 0 Then
For c = LBound(arr2, 1) To UBound(arr2, 1)
For d = LBound(arr2, 1) To UBound(arr2, 2)
If arr2(c, d) <> "" Or Not skipblank Then
TEXTJOIN = TEXTJOIN & arr2(c, d) & delim
End If
Next d
Next c
Else
For c = LBound(arr2) To UBound(arr2)
If arr2(c) <> "" Or Not skipblank Then
TEXTJOIN = TEXTJOIN & arr2(c) & delim
End If
Next c
End If
TEXTJOIN2 = Left(TEXTJOIN, Len(TEXTJOIN) - Len(delim))
End Function
这篇关于MS Excel - 具有分隔符的Concat的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文