多個單元格的內容合并到一個單元格里

kgd0206 2008-04-30 10:18:38
數據表
部門 數量 原因
倉 庫 113 發錯貨
生產部 120 漏單
質檢部 360 數量不OK
營業部 12 錯單
倉 庫 260 缺貨
生產部 56 印錯
生產部 231 損耗大
質檢部 81 規格不OK

最終報表
部門 數量 原因
生產部 407 漏單,印錯,損耗大
倉 庫 373 發錯貨,缺貨
質檢部 441 數量不OK,規格不OK
營業部 12 錯單

請問:如何將多個單元格的內容合并到一個單元格里,并將原每個單元格的內容用標點符號分開?

現時解決方法是:用數據----數據透視表 統計後,用concatenate函數把原因字段的每個單元格一個一個合并,但數據表記錄多時,用這方法效率低
...全文
631 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
zipall 2008-05-08
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 kgd0206 的回复:]
3楼的高手,你所提供的帖子并不是我想得到的效果,你所发的贴子,结果是合并到同一行的多个单元格里。而我想得到是合并到单一个单元格里,并有标点隔幵。

[/Quote]

换这个试试

Sub test()
Sheets("sheet2").Select
[A:C].ClearContents
With Sheets("Sheet1")
[A1].Select
Selection.Consolidate Sources:="[Book1]Sheet1!C1:C2", Function:=xlSum, TopRow:=True, LeftColumn:=True, CreateLinks:=False 'book1是文件名,要根据实际修改。
For i = 2 To .[C65536].End(xlUp).Row
x = Application.WorksheetFunction.Match(.Cells(i, 1), [A:A], 0)
If Application.WorksheetFunction.CountIf(Cells(x, 3), "*" & .Cells(i, 3) & "*") = 0 Then
If Cells(x, 3) = "" Then
Cells(x, 3) = CStr(.Cells(i, 3))
Else
Cells(x, 3) = Cells(x, 3) & ";" & .Cells(i, 3)
End If
End If
Next i
End With
End Sub

kgd0206 2008-05-08
  • 打赏
  • 举报
回复
哦,明白了。谢谢
kgd0206 2008-05-08
  • 打赏
  • 举报
回复
9楼:俺是新手,对vb不懂,我把你写的代码拷到vb里好象不行啊?我该怎麽做?????
kgd0206 2008-05-08
  • 打赏
  • 举报
回复
8楼:我的意思是说,只能对符合条件的两个原因合并,超出三个就不行了。
gracexu 2008-05-07
  • 打赏
  • 举报
回复
1.什么叫超出范围?没看懂
2。不取重复记录,要求好高啊。我目前的思路就是这个问题分两步走,先把部门原因相同的合并求数量,然后再用我上面提供的合并原因的方法。
kgd0206 2008-05-07
  • 打赏
  • 举报
回复
3楼的高手,你所提供的帖子并不是我想得到的效果,你所发的贴子,结果是合并到同一行的多个单元格里。而我想得到是合并到单一个单元格里,并有标点隔幵。


6楼的高手,你所提供的贴对我很有帮助。但现问题如下:
1. 按公式在F2栏输入公式,只能对阿C列中两个符合条件的单元格进行合并,(如生产部对就的原因),超出范围则不行。
2. 若相同部门,有相同的原因, 在F栏合并时,不取重复记录,怎麽办。


gracexu 2008-05-07
  • 打赏
  • 举报
回复
zipall 就多个单元格合并成一个有个经典解法,但好像不是你说的那个帖子.
假设楼主的数据放在A,b,c 三栏,

我们在D栏 列出不重复的部门名
在D2 输入 =IF(COUNTIF($A$2:A2,A2)=1,A2,""),向下填充
注意要照样哦,因为$A$2 固定了开始的地方,而其它会在向下拉的时候增长的

在E栏计算总数
在E2 输入 =SUM(IF(A$2:A$10=D2,B$2:B$10,0))
这是数组公式,按ctrl+shift+enter 输入,向下填充,具体范围根据需要修改

在F栏合并原因字段
在F2 输入 =C2 & "," & IF(ISNA(VLOOKUP(A2,A3:C$65536,3,0)),"",VLOOKUP(A2,A3:C$65536,3,0))
合并的效果要等F栏的全部填上公式就看出来了.
Mandy519 2008-05-07
  • 打赏
  • 举报
回复
不好意思,我看错了
Mandy519 2008-05-07
  • 打赏
  • 举报
回复
介绍一个比较笨的办法:

首先将原始Excel表中的数据拷贝到txt中,然后复制两列数据之间的间距(看起来应该是空白),替换为空格,然后再将替换后的内容拷回到Excel中,应该就可以了。
zipall 2008-05-03
  • 打赏
  • 举报
回复
参考
http://topic.csdn.net/u/20080327/13/e2884ac7-6556-4747-adb9-e11d0ffe96a2.html
kgd0206 2008-05-01
  • 打赏
  • 举报
回复
123
UltraBejing 2008-04-30
  • 打赏
  • 举报
回复
这个简单啊,网上搜一下就得到答案了.

6,210

社区成员

发帖
与我相关
我的任务
社区描述
Microsoft Office应用
社区管理员
  • Microsoft Office应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧