代码之家  ›  专栏  ›  技术社区  ›  leora Matt Lacey

在Excel中,是否有方法获取列并将其转换为连接字符串

  •  5
  • leora Matt Lacey  · 技术社区  · 14 年前

    我想取一个多行名称列表,并将它们组合成一个这样的单元格:


    鲍勃
    乔治

    并将其转换为一个具有此属性的单元格:

    “乔”,“鲍勃”,“乔治”

    6 回复  |  直到 14 年前
        1
  •  1
  •   VeeArr    14 年前

    如果 Excel CONCATENATE() function 不会做你想做的事, this link 可能会有所帮助。

        2
  •  7
  •   live-love    10 年前

    尝试使用转置函数并按F9:

    A1:

    鲍勃

    乔治

    b1:(键入功能栏)

    =转置(A1:A3)

    突出显示转置(A1:A3),然后按F9。

    它会给你:

    “乔”、“鲍勃”、“乔治”

    复制并粘贴该列表。就是这样。

    要连接单词,只需执行以下操作:

    =连接(转置(A1:A3))

    突出显示转置(A1:A3),按F9,然后拆下支架:

    =连接(“Joe”、“Bob”、“George”)

        3
  •  3
  •   bob-the-destroyer    14 年前

    我知道有两种基本的方法。

    最快的方法

    1. A栏列出您的姓名
    2. 将a1的值复制到b1-“joe”
    3. 在b2中,输入公式`=b1&“,&a2`
    4. 选择b2,复制公式,并将B列的其余部分粘贴到A列的整个长度上。B列中的最后一个单元格将包含A列中以逗号分隔的值列表。

    更好的方法-
    创建自己的vb函数,该函数迭代一系列单元格,而不是像这样求和 sum ,只需连接它们。

    我一直这样做,所以如果有人知道一个实际的内置Excel函数隐藏在MS文档中的某个地方,它可以连接范围,那么您就可以节省一天的时间。

        4
  •  1
  •   buckbova    14 年前

    这很容易。您可能希望与trim、left、right和find结合使用。享受!

    = A1 & " " & B1

        5
  •  1
  •   Huey Fran    9 年前

    将此宏添加到Excel工作表中,并将其用作输入范围和分隔符的自定义函数

    Function Concat(myRange As Range, Optional myDelimiter As String) As String
      Dim r As Range
      Application.Volatile
      For Each r In myRange
        If Len(r.Text) Then
          Concat = Concat & IIf(Concat <> "", myDelimiter, "") & r.Text
        End If
      Next
    End Function
    
        6
  •  0
  •   Fionnuala    14 年前

    可以将GetString与ADO记录集一起使用。

    Dim cn As Object
    Dim rs As Object
    Dim strFile As String
    Dim strCon As String
    Dim strSQL As String
    Dim s As String
    
    ''This is not the best way to refer to the workbook
    ''you want, but it is very conveient for notes
    ''It is probably best to use the name of the workbook.
    
    strFile = ActiveWorkbook.FullName
    
    strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strFile _
        & ";Extended Properties=""Excel 8.0;HDR=No;IMEX=1"";"
    
    Set cn = CreateObject("ADODB.Connection")
    Set rs = CreateObject("ADODB.Recordset")
    
    cn.Open strCon
    
    strSQL = "SELECT * " _
           & "FROM [Sheet1$A:A] "
    
    rs.Open strSQL, cn, 3, 3
    
    ''http://www.w3schools.com/ado/ado_getstring.asp
    ''str = rs.GetString(format,rows,coldel,rowdel,nullexpr)
    s = rs.GetString(, , , ", ")
    ActiveSheet.Range("B1") = s
    
    ''Tidy up
    rs.Close
    Set rs = Nothing
    cn.Close
    Set cn = Nothing