EXCEL:请教一个合并字符串的语句

pphero 2008-12-26 04:07:56
请教,具体如下:我有一张表T1,内有3个字段列id,name,content,只有id是数字形式如

id name content
1 n1 c1
2 n2 c1
2 n2 c2
3 n3 c1
3 n3 c1
3 n3 c3
3 n3 c2
4 n4 c5
………… ………… ……
请教如何实现得到 去除完全重复的记录而且当id值相同时content字段值叠加的表格,如:
id name content
1 n1 c1
2 n2 c1、c2
3 n3 c1、c3、c2
4 n4 c5……
…… …… ……

请赐教,谢谢!
...全文
2123 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
northwolves 2008-12-29
  • 打赏
  • 举报
回复
VBA解决:
Sub Macro1()
Dim arr, brr, i As Long, j As Long, n As Long
arr = [a1].CurrentRegion
ReDim brr(1 To UBound(arr), 1 To 3)
For i = 1 To UBound(arr)
If arr(i, 1) <> temp Then
n = n + 1
brr(n, 1) = arr(i, 1)
brr(n, 2) = arr(i, 2)
brr(n, 3) = arr(i, 3)
temp = arr(i, 1)
Else
If InStr(brr(n, 3), arr(i, 3)) = 0 Then brr(n, 3) = brr(n, 3) & "," & arr(i, 3)
End If
Next
[e1].Resize(n, 3) = brr
MsgBox "Ok"
End Sub
guopeixin 2008-12-29
  • 打赏
  • 举报
回复
强,两年多都没有用VBA了
gracexu 2008-12-27
  • 打赏
  • 举报
回复
这个合并字符串的解法CSDN 中有很多答案的,我提供一种。
假设 id, name ,content 分别是A,B,C 三列,我用D,E,F 来显示结果,

在D2 中输入 =IF(COUNTIF($A$2:A2,A2)=1,A2,"")
然后拖动单元格右下角的填充柄一直到你需要的地方,
D3 会变成 =IF(COUNTIF($A$2:A3,A3)=1,A3,""),依此类推

同理在 F2 中输入=VLOOKUP(D2,$A$2:B2,2,0)
然后拖动单元格右下角的填充柄一直到你需要的地方


在 F2 中输入=IF(ISNA(VLOOKUP(A2,A3:C$65536,3,0)),C2,C2 & "、" & VLOOKUP(A2,A3:F$65536,6,0))
然后拖动单元格右下角的填充柄一直到你需要的地方,效果要等你全部拖完才能看到
guopeixin 2008-12-26
  • 打赏
  • 举报
回复

6,210

社区成员

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

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