MS Excel - 具有分隔符的Concat [英] MS Excel - Concat with a delimiter

查看:143
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆