第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,一次类推。