我想获取多行名称列表并将它们合并为一个单元格,如下所示:
乔
鲍勃
乔治
并将其转换为具有以下内容的单元格:
“乔”,“鲍勃”,“乔治”
答案 0 :(得分:7)
尝试使用TRANSPOSE功能并按下F9:
A1:
乔
鲍勃
乔治
B1 :(输入功能栏)
= TRANSPOSE(A1:A3)
高亮显示TRANSPOSE(A1:A3),然后按F9。
它会给你:
{"乔""鲍勃""乔治"}
复制并粘贴该列表。那就是它。
要连接单词,您只需要执行以下操作:
= CONCATENATE(移调(A1:A3))
高亮显示TRANSPOSE(A1:A3),按F9,然后删除括号:
= CONCATENATE("乔""鲍勃""乔治&#34)
答案 1 :(得分:3)
我知道有两种基本方法。
最快的方式 -
更好的方式 -
制作你自己的vb函数,迭代一系列单元格,而不是像sum
那样对它们求和,只需将它们连接起来。
我一直这样做,所以如果有人知道实际的内置Excel函数隐藏在连接范围的MS文档中,那么你将节省一天。
答案 2 :(得分:1)
如果Excel CONCATENATE()
function无法满足要求,this link可能有所帮助。
答案 3 :(得分:1)
这很容易。您可能希望与trim,left,right和find结合使用。享受!
= A1 & " " & B1
答案 4 :(得分:1)
将此作为宏添加到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
答案 5 :(得分:0)
您可以将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