就是要把下面第一张图中的数据处理成第二张图中的格式。 我们用的是vlookup,相对引用,以及循环引用的方法实现的。 今天我们用VBA来处理下。 代码如下: Sub 提取合并() Dim hs%, i%, n%, ts%, arr, a% hs = Range('a2', [b2].End(xlDown)).Rows.Count '求A列渠道客户的行数 For i = 1 To hs '循环,从第一个值循环到最后一个值 If Cells(i, 1).Value <> Cells(i 1, 1) Then '若上下两个值不想等,那就把下面的值提取出来 n = n 1 Cells(n 1, 4).Value = Cells(i 1, 1) '提取出来并放置到某个单元格中 ts = Application.CountIf([a:a], Cells(i 1, 1).Value) '查找提取出来的值在A列中的条数 arr = Cells(i 1, 1)(1, 2).Resize(ts, 1) '提取出来的值对应的客户区域赋给一个数组 Cells(n 1, 5).Value = Join(Application.Transpose(arr), '、') '把此数组转置并连接起来,中间用顿号分开 End If Next [a1:b1].Copy [d1:e1] '表头复制过去 End Sub 今天的分享就到这里! 视频教程正在陆续录制中,进入公众号后台菜单中可了解详情! |
|