Excel中有没有办法获取一列并将其转换为连接字符串

Posted

技术标签:

【中文标题】Excel中有没有办法获取一列并将其转换为连接字符串【英文标题】:Is there a way in Excel to take a column and convert it to a concatenated string 【发布时间】:2011-03-05 13:41:10 【问题描述】:

我想获取多行中的名称列表并将它们组合成一个单元格,如下所示:

乔 鲍勃 乔治

并将其转换为具有以下内容的单元格:

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

【问题讨论】:

【参考方案1】:

尝试使用TRANSPOSE功能并按F9:

+---+--------+
|   |   A    |
+---+--------+
| 1 | Joe    |
| 2 | Bob    |
| 3 | George |
+---+--------+

B1:(在功能栏中输入)

=TRANSPOSE(A1:A3)

突出显示 TRANSPOSE(A1:A3),然后按 F9

它会给你:

"Joe","Bob","George"

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

要连接单词,您只需:

=CONCATENATE(TRANSPOSE(A1:A3))

高亮TRANSPOSE(A1:A3),按F9,然后去掉括号:

=CONCATENATE("Joe","Bob","George")

【讨论】:

【参考方案2】:

我知道有两种基本方法。

最快的方法-

    A 列列出了您的姓名 将 A1 的值复制到 B1 - “Joe” 在 B2 中,输入公式 `=B1 & ", " & A2` 选择 B2,复制公式,然后将 B 列的其余部分粘贴到 A 列的整个长度。B 列中的最后一个单元格将包含一个逗号分隔的 A 列值列表。

更好的方法 - 制作您自己的 vb 函数来迭代一系列单元格,而不是像 sum 那样对它们求和,而是将它们连接起来。

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

【讨论】:

【参考方案3】:

将此作为宏添加到 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

【讨论】:

【参考方案4】:

如果Excel CONCATENATE() function 不能满足您的要求,this link 可能会有所帮助。

【讨论】:

用一个问题回答了这个问题。 如果链接失效,这个答案几乎没用【参考方案5】:

就这么简单。您可能希望与 trim、left、right 和 find 结合使用。享受吧!

= A1 &amp; " " &amp; B1

【讨论】:

【参考方案6】:

您可以将 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

【讨论】:

以上是关于Excel中有没有办法获取一列并将其转换为连接字符串的主要内容,如果未能解决你的问题,请参考以下文章

bigquery excel连接器 - 查询大于256个字符

获取字符串中的每个字符并将其转换为 Hex c++?

在 php 中将 XML 文档转换为数组时,有没有办法将其转换回来并将其保存为属性为元素的 XML 文件?

phpmyadmin 与 java。有没有办法从 phpmyadmin 获取字符串并将其与键盘输入进行比较?

如何获取罗马数字字符串并将其转换为base10数字? [关闭]

如何从字符串中获取子字符串并将另一个字符串附加到字符串并将其转换为数组