excel把几列数据合并到一列单元格中并用分隔符分开

我要处理的数据量非常巨大。如下表
A B C D
1 2
1 2 3
2
4 5 6 7
我想把它变成
A
1,2
1,2,3
2
4,5,6,7
如果用普通的=A1&","&B1","&C1&","&D1就会变成
A
1,2,,
1,2,3,
2,,,
4,5,6,7

其实用你的普通方法就可以。
首先选择数据区域如:A1:D8000
按Ctrl+G---条件定位---空值--确定
输入:“+”按Ctrl+Enter结束
然后在E1输入:=A1&","&B1&","&C1&","&D1 并向下填充
选择E列--复制--右键--选择性粘贴--数值--确定
选择E列--Ctrl+H--查找内容输入:“,+”---替换内容留空--全部替换即可。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-08-24
为了使公式更简单化,另取两空白列,这里假设E、F列,且数据从第二行开始,则E2、F2分别对应输入下面公式,回车下拉,E列就是你要的结果
=IF(A2="","",A2&",")&(IF(B2="","",B2&","))&(IF(C2="","",C2&","))&(IF(D2="","",D2))
=IF(RIGHT(E2,1)=",",LEFT(E2,LEN(E2)-1),E2)
第2个回答  推荐于2016-03-14
用vba代码 ,把下面的代码放在该表模块中(右击表名 》查看代码)
数据输出在E列:

Sub aa()
Dim str1 As String
For Each c In Range("a1:a6")
str1 = ""
i = c.Row
For j = 1 To 4
If Cells(i, j).Value <> "" Then
str1 = str1 & "," & Cells(i, j).Value
End If
Next
str1 = Right(str1, Len(str1) - 1)
MsgBox str1
Cells(i, 5).Value = str1
Next c
End Sub本回答被提问者采纳
第3个回答  2011-08-24
有个合并函数 =CONCATENATE(A1,B1,C1,D1)追问

是啥么,我很想知道呀。。。我也知道有。。。

追答

有个合并函数 =CONCATENATE(A1,B1,C1,D1)

追问

合出来以后中间没有逗号,你自己试一下。。。

追答

要逗号需要另做判断
=CONCATENATE(B1,IF(C1"",",",""),C1)

第4个回答  2011-08-24
你就先用&连接起来,然后通过复制-选择性粘贴-数值把公式转为数值,现在的问题就是去掉多余的逗号,B1输入公式:
=LEFT(A1,LEN(A1)+LEN(A1)-7)
公式下拉即可
这个公式只适用于最多四列数据,如果最多的数据有5列的话,最后那个7改为9,6列的话改为11,一次类推。