Excel精英培训网

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

[已解决]按月份和名称汇总数据(请用VBA)

[复制链接]
发表于 2016-3-20 21:01 | 显示全部楼层 |阅读模式
各位,大家好,这个帖子之前在帖子上面发过类似的,当时有人使用了复杂的公式解决了,随着数据表变大使用起来很慢,现希望有人能使用VBA代码来解决此问题,感谢。
问题描述见下图:
QQ截图20160320205437.png 2.png
求助.zip (7.64 KB, 下载次数: 14)
发表于 2016-3-20 21:47 | 显示全部楼层    本楼为最佳答案   
  1. Sub Macro1()
  2. Dim arr, brr, d, i&
  3. Set d = CreateObject("scripting.dictionary")
  4. arr = Sheet2.Range("a1").CurrentRegion
  5. ReDim brr(1 To UBound(arr), 1 To 3)
  6. Sheet1.Activate: ym = [e1]
  7. For i = 2 To UBound(arr)
  8.     If DateDiff("m", ym, arr(i, 1)) <> 0 Then
  9.         arr(i, 3) = 0
  10.         arr(i, 4) = 0
  11.     End If
  12.     If Not d.exists(arr(i, 2)) Then
  13.         s = s + 1
  14.         d(arr(i, 2)) = s
  15.         brr(s, 1) = arr(i, 2)
  16.         brr(s, 2) = arr(i, 3)
  17.         brr(s, 3) = arr(i, 4)
  18.     Else
  19.         n = d(arr(i, 2))
  20.         brr(n, 2) = brr(n, 2) + arr(i, 3)
  21.         brr(n, 3) = brr(n, 3) + arr(i, 4)
  22.     End If
  23. Next
  24. ActiveWindow.DisplayZeros = False
  25. [a3:c2000] = ""
  26. Range("a3").Resize(d.Count, 3) = brr
  27. End Sub
复制代码

求助.zip

14.62 KB, 下载次数: 45

回复

使用道具 举报

发表于 2016-3-20 21:48 | 显示全部楼层
本帖最后由 领风飞翔 于 2016-3-20 22:01 编辑

求助.rar (7.91 KB, 下载次数: 11)
回复

使用道具 举报

发表于 2016-3-20 21:54 | 显示全部楼层
dsmch 发表于 2016-3-20 21:47

字典法,学习了。
回复

使用道具 举报

 楼主| 发表于 2016-3-21 17:48 | 显示全部楼层
dsmch 发表于 2016-3-20 21:47

您好!非常感谢您的帮助,之前我天真的以为您写好代码我只需稍微修改就可以用在我的工作表上面,但是我看了您的代码后修改了好久还是达不到实例中效果,现在我把我的工作原表发给您,还麻烦您把代码调整到我的工作表上(上面有对应颜色标识),就是把客户日记账中的数据分别整合到月纯利统计表和月毛利统计表中,再次感谢! 记账.zip (239.55 KB, 下载次数: 8)

点评

用实例模拟几条结果,03版本不能显示公式结果。  发表于 2016-3-21 18:55
回复

使用道具 举报

 楼主| 发表于 2016-3-21 19:17 | 显示全部楼层
hyfire2008 发表于 2016-3-21 17:48
您好!非常感谢您的帮助,之前我天真的以为您写好代码我只需稍微修改就可以用在我的工作表上面,但是我看 ...

您好!我在给我的表上面研究了好久,还是不明白其中的缘由,因为我对数组很不了解,希望能花您几分钟帮帮忙把我的工作表上的代码写一下,这对于您来说应该只是改改数字吧,谢谢!
回复

使用道具 举报

 楼主| 发表于 2016-3-21 19:19 | 显示全部楼层
hyfire2008 发表于 2016-3-21 17:48
您好!非常感谢您的帮助,之前我天真的以为您写好代码我只需稍微修改就可以用在我的工作表上面,但是我看 ...

2003版本的数据。 记账.zip (195.44 KB, 下载次数: 8)

点评

把公式结果复制,选择性粘贴为数值,并加以说明对应关系  发表于 2016-3-21 20:42
回复

使用道具 举报

 楼主| 发表于 2016-3-21 21:09 | 显示全部楼层
hyfire2008 发表于 2016-3-21 19:19
2003版本的数据。

感谢!附件详细说明了一下。 记账.zip (180.14 KB, 下载次数: 22)

点评

和楼上的附件没有差别,爱莫能助  发表于 2016-3-21 21:20
回复

使用道具 举报

 楼主| 发表于 2016-3-21 21:39 | 显示全部楼层
hyfire2008 发表于 2016-3-21 21:09
感谢!附件详细说明了一下。

虽然没有解决我的问题,但是还是非常感谢您的耐心,赞一个!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-28 19:20 , Processed in 0.418103 second(s), 16 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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