Excel精英培训网

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

[已解决]将sheet2的内容分类汇总分别是填入sheet1对应列

[复制链接]
发表于 2022-12-8 15:01 | 显示全部楼层 |阅读模式
1学分
本帖最后由 su77 于 2022-12-8 15:03 编辑

各位大神:附件中需要1.将sheet2中按车间+编码进行数量汇总
2.将汇总结果填入sheet1对应的列
3.若sheet1编码有,而sheet2编码无的,则不填
4.O列填入的是车间=HP或者车间=TP一起汇总填入该列
我写的代码只能填入其中的一列,望各位有经验的多多教!





最佳答案
2022-12-8 15:01
su77 发表于 2022-12-8 16:28
你好,这个代码运算的结果是计数的结果啊!我需要是把shee2里的【数量】进行汇总的。我知道如何改了!谢 ...

Sub demo()
   Set d = CreateObject("Scripting.Dictionary")
   a = Sheet1.[a2].CurrentRegion
   b = Sheet2.[a2].CurrentRegion
   For i = 2 To UBound(b)
      Key = b(i, 1) & IIf("HP&TP" Like "*" & b(i, 6) & "*", "HP&TP", b(i, 6))
      d(Key) = d(Key) + b(i, 4)
   Next
   For i = 2 To UBound(a)
      For k = 12 To 15
         Key = a(i, 1) & a(1, k)
         If d(Key) Then a(i, k) = d(Key)
      Next
   Next
   Sheet1.[a2].CurrentRegion = a
End Sub


求和汇总后填入指定列.zip

18.67 KB, 下载次数: 12

最佳答案

查看完整内容

Sub demo() Set d = CreateObject("Scripting.Dictionary") a = Sheet1.[a2].CurrentRegion b = Sheet2.[a2].CurrentRegion For i = 2 To UBound(b) Key = b(i, 1) & IIf("HP&TP" Like "*" & b(i, 6) & "*", "HP&TP", b(i, 6)) d(Key) = d(Key) + b(i, 4) Next For i = 2 To UBound(a) For k = 12 To 15 Key = a(i, 1) & a(1, k) If d(Key) Then a(i, k) = d( ...
发表于 2022-12-8 15:01 | 显示全部楼层    本楼为最佳答案   
su77 发表于 2022-12-8 16:28
你好,这个代码运算的结果是计数的结果啊!我需要是把shee2里的【数量】进行汇总的。我知道如何改了!谢 ...

Sub demo()
   Set d = CreateObject("Scripting.Dictionary")
   a = Sheet1.[a2].CurrentRegion
   b = Sheet2.[a2].CurrentRegion
   For i = 2 To UBound(b)
      Key = b(i, 1) & IIf("HP&TP" Like "*" & b(i, 6) & "*", "HP&TP", b(i, 6))
      d(Key) = d(Key) + b(i, 4)
   Next
   For i = 2 To UBound(a)
      For k = 12 To 15
         Key = a(i, 1) & a(1, k)
         If d(Key) Then a(i, k) = d(Key)
      Next
   Next
   Sheet1.[a2].CurrentRegion = a
End Sub


回复

使用道具 举报

发表于 2022-12-8 16:15 | 显示全部楼层
Sub demo()
   Set d = CreateObject("Scripting.Dictionary")
   a = Sheet1.[a2].CurrentRegion
   b = Sheet2.[a2].CurrentRegion
   For i = 2 To UBound(b)
      Key = b(i, 1) & IIf("HP&TP" Like "*" & b(i, 6) & "*", "HP&TP", b(i, 6))
      d(Key) = d(Key) + 1
   Next
   For i = 2 To UBound(a)
      For k = 12 To 15
         Key = a(i, 1) & a(1, k)
         If d(Key) Then a(i, k) = d(Key)
      Next
   Next
   Sheet1.[a2].CurrentRegion = a
End Sub


demo.zip

22.54 KB, 下载次数: 21

回复

使用道具 举报

 楼主| 发表于 2022-12-8 16:28 | 显示全部楼层
本帖最后由 su77 于 2022-12-8 16:32 编辑
cutecpu 发表于 2022-12-8 16:15
Sub demo()
   Set d = CreateObject("Scripting.Dictionary")
   a = Sheet1.[a2].CurrentRegion

你好,这个代码运算的结果是计数的结果啊!我需要是把shee2里的【数量】进行汇总的。我知道如何改了!谢谢你!

点评

好喔~~  发表于 2022-12-8 16:32
回复

使用道具 举报

 楼主| 发表于 2022-12-8 16:49 | 显示全部楼层
本帖最后由 su77 于 2022-12-8 16:59 编辑
cutecpu 发表于 2022-12-8 16:36
Sub demo()
   Set d = CreateObject("Scripting.Dictionary")
   a = Sheet1.[a2].CurrentRegion

再请教一个问题:如果最后的HP&TP不合并统计数量,也是分列填入的,代码应该怎么改?
回复

使用道具 举报

发表于 2022-12-8 16:57 | 显示全部楼层
su77 发表于 2022-12-8 16:49
如果sheet1的标题行位于第2行,那么for k= 12 to 15这个就是错误的吧,那如果sheet1的标题位于第2行的话 ...

可以截個圖讓我看一下,我看Sheet1標題行目前已經在第二行

log.png
回复

使用道具 举报

 楼主| 发表于 2022-12-8 16:59 | 显示全部楼层
cutecpu 发表于 2022-12-8 16:57
可以截個圖讓我看一下,我看Sheet1標題行目前已經在第二行了

不好意思,我理解代码理解错了!
回复

使用道具 举报

发表于 2022-12-8 17:02 | 显示全部楼层
su77 发表于 2022-12-8 16:49
再请教一个问题:如果最后的HP&TP不合并统计数量,也是分列填入的,代码应该怎么改?

Sub demo()
   Set d = CreateObject("Scripting.Dictionary")
   a = Sheet1.[a2].CurrentRegion
   b = Sheet2.[a2].CurrentRegion
   For i = 2 To UBound(b)
      Key = b(i, 1) & b(i, 6)
      d(Key) = d(Key) + b(i, 4)
   Next
   For i = 2 To UBound(a)
      For k = 12 To 16
         Key = a(i, 1) & a(1, k)
         If d(Key) Then a(i, k) = d(Key)
      Next
   Next
   Sheet1.[a2].CurrentRegion = a
End Sub
回复

使用道具 举报

 楼主| 发表于 2022-12-9 08:07 | 显示全部楼层
cutecpu 发表于 2022-12-8 17:02
Sub demo()
   Set d = CreateObject("Scripting.Dictionary")
   a = Sheet1.[a2].CurrentRegion

明白了,非常感谢!

点评

不客氣喔~  发表于 2022-12-9 08:32
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-30 00:21 , Processed in 0.632927 second(s), 15 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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