如何用公式将EXCEL中相同项目的结果合并到同一单元格中——急求
2406011572205件20261334240601157252件2026133524060115721件6347302624060115731件63086088比如...
2406011572 205件20261334
2406011572 52件20261335
2406011572 1件63473026
2406011573 1件63086088
比如以上数据,如何合并成以下形式
2406011572 205件20261334,52件20261335,1件63473026
2406011573 1件63473026
2406011573 1件63086088
求VBA大神赐个代码,感谢! 展开
2406011572 52件20261335
2406011572 1件63473026
2406011573 1件63086088
比如以上数据,如何合并成以下形式
2406011572 205件20261334,52件20261335,1件63473026
2406011573 1件63473026
2406011573 1件63086088
求VBA大神赐个代码,感谢! 展开
6个回答
展开全部
先排序把相同的用下面宏可以连在一起了。
Sub 单元格内容连接()
Dim my As Range, Response, bd As String, my1 As String, i As Long
i = 1
Set my = Application.InputBox(Prompt:="请选要连接单元格区域", Type:=8)
Response = MsgBox("是否要换行?", vbYesNo)
If Response = vbYes Then ' 用户按下“是”。
Response = MsgBox("是否要加标点?", vbYesNo)
If Response = vbYes Then
bd = Application.InputBox(Prompt:="请输入标点符号", Type:=2)
For Each c In my
If i = 1 Then
If c.Value <> "" Then my1 = c.Text & bd: i = i + 1
Else
If c.Value <> "" Then my1 = my1 & vbLf & c.Text & bd: i = i + 1
End If
Next c
Else
For Each c In my
If i = 1 Then
If c.Value <> "" Then my1 = c.Text: i = i + 1
Else
If c.Value <> "" Then my1 = my1 & vbLf & c.Text: i = i + 1
End If
Next c
End If
Else ' 用户按下“否”。
Response = MsgBox("是否要加标点?", vbYesNo)
If Response = vbYes Then
bd = Application.InputBox(Prompt:="请输入标点符号", Type:=2)
For Each c In my
If i = 1 Then
If c.Value <> "" Then my1 = c.Text & bd: i = i + 1
Else
If c.Value <> "" Then my1 = my1 & c.Text & bd: i = i + 1
End If
Next c
Else
For Each c In my
If i = 1 Then
If c.Value <> "" Then my1 = c.Text: i = i + 1
Else
If c.Value <> "" Then my1 = my1 & c.Text: i = i + 1
End If
Next c
End If
End If
Set my = Application.InputBox(Prompt:="内容连接完成请选单元格输出", Type:=8)
my = my1
End Sub
追问
大佬,这个不能识别前面一个单元格的相同项啊。需要的是A列所有相同单元格的B列的数据集中在一个单元格中提现,
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
没有那么复杂,直接做一个透视表,然后在透视边中选求和就好了,透视表做法可百度
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2018-10-11 · 知道合伙人软件行家
关注
展开全部
通过代码可以实现。
追问
VBA么?可以给一下解决办法么?谢谢~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Sub s()
arr = UsedRange
UsedRange.ClearContents
Set d = CreateObject("scripting.dictionary")
c = 1
For i = 1 To UBound(arr)
If d.exists(arr(i, 1)) Then
Cells(d(arr(i, 1)), 2) = Cells(d(arr(i, 1)), 2) & "," & arr(i, 2)
Else
d(arr(i, 1)) = c
Cells(c, 1) = arr(i, 1)
Cells(c, 2) = arr(i, 2)
c = c + 1
End If
Next
End Sub
arr = UsedRange
UsedRange.ClearContents
Set d = CreateObject("scripting.dictionary")
c = 1
For i = 1 To UBound(arr)
If d.exists(arr(i, 1)) Then
Cells(d(arr(i, 1)), 2) = Cells(d(arr(i, 1)), 2) & "," & arr(i, 2)
Else
d(arr(i, 1)) = c
Cells(c, 1) = arr(i, 1)
Cells(c, 2) = arr(i, 2)
c = c + 1
End If
Next
End Sub
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
写代码可以实现
序列 编号 明细
1 2406012820 5件20214535,12件20224598
2 2406013500 155件20273628,10件63503372
3 2406013390 1件21088403
4 2406029355 9件20217207
序列 编号 明细
1 2406012820 5件20214535,12件20224598
2 2406013500 155件20273628,10件63503372
3 2406013390 1件21088403
4 2406029355 9件20217207
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询