Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 2099|回复: 2

[已解决]在A列查找与C列相同的值,并依次将对应的B列的值复制到C列后面

[复制链接]
发表于 2016-5-3 14:36 | 显示全部楼层 |阅读模式
在A列查找与C列相同的值,并依次将对应的B列的值复制到C列后面。附件里的我已经手动输入了几个,请教一个批量处理的公式或者VBA
最佳答案
2016-5-3 14:52
  1. Sub tt()
  2.     Set d = CreateObject("scripting.dictionary")
  3.     arr = [a1].CurrentRegion
  4.     For i = 2 To UBound(arr)
  5.         If InStr(d(arr(i, 1)), arr(i, 2)) = 0 Then d(arr(i, 1)) = d(arr(i, 1)) & arr(i, 2) & ","
  6.     Next
  7.     dk = d.keys
  8.     [d2].Resize(d.Count, 1) = Application.Transpose(dk)
  9.     For i = 0 To UBound(dk)
  10.         xrr = Split(d(dk(i)), ",")
  11.         Cells(i + 2, 5).Resize(1, UBound(xrr)) = xrr
  12.     Next
  13. End Sub
复制代码

编号.rar

9.42 KB, 下载次数: 9

发表于 2016-5-3 14:52 | 显示全部楼层    本楼为最佳答案   
  1. Sub tt()
  2.     Set d = CreateObject("scripting.dictionary")
  3.     arr = [a1].CurrentRegion
  4.     For i = 2 To UBound(arr)
  5.         If InStr(d(arr(i, 1)), arr(i, 2)) = 0 Then d(arr(i, 1)) = d(arr(i, 1)) & arr(i, 2) & ","
  6.     Next
  7.     dk = d.keys
  8.     [d2].Resize(d.Count, 1) = Application.Transpose(dk)
  9.     For i = 0 To UBound(dk)
  10.         xrr = Split(d(dk(i)), ",")
  11.         Cells(i + 2, 5).Resize(1, UBound(xrr)) = xrr
  12.     Next
  13. End Sub
复制代码

编号.rar

18.49 KB, 下载次数: 12

评分

参与人数 1 +1 收起 理由
shiche12 + 1 我和小伙伴都惊呆了

查看全部评分

回复

使用道具 举报

发表于 2016-5-3 15:11 | 显示全部楼层
附件

编号.zip

16.08 KB, 下载次数: 5

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-25 17:22 , Processed in 0.207940 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表