Excel精英培训网

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

[已解决]按照3级汇总,然后写进批注

[复制链接]
发表于 2014-4-4 11:14 | 显示全部楼层 |阅读模式
首先按照对方科目、二级科目、部门汇总出金额来;
然后把汇总的金额的对应的摘要和金额写进批注,由几个写几个.
例如:管理部的管理费用--办公费54.1,他是由发合同快递费13;税务登记证打车费   38.1;公司扫描证照费用 3组成,然后写进对应批注.
请帮忙
最佳答案
2014-4-6 16:04
zhj1978 发表于 2014-4-6 12:06
答案期待中

已经修改,请测试:
(, 下载次数: 14)

帮忙.xlsx.rar

11.83 KB, 下载次数: 8

 楼主| 发表于 2014-4-4 11:29 | 显示全部楼层
回复

使用道具 举报

 楼主| 发表于 2014-4-4 11:51 | 显示全部楼层
回复

使用道具 举报

发表于 2014-4-4 12:22 | 显示全部楼层
{:1312:}好难啊,先搬个板凳等学习
回复

使用道具 举报

 楼主| 发表于 2014-4-4 12:27 | 显示全部楼层


在线等,急急急
回复

使用道具 举报

发表于 2014-4-4 13:00 | 显示全部楼层
zhj1978 发表于 2014-4-4 12:27
在线等,急急急

就这点数据的话无须使用VBA来处理吧!{:1812:}
楼主需要说明是不是只需对CDE3列进行处理?{:4512:}
回复

使用道具 举报

 楼主| 发表于 2014-4-4 13:06 | 显示全部楼层
windimi007 发表于 2014-4-4 13:00
就这点数据的话无须使用VBA来处理吧!
楼主需要说明是不是只需对CDE3列进行处理?

我只是举了个例子,说明情况,其实数据源很多的,请帮忙
回复

使用道具 举报

发表于 2014-4-4 13:22 | 显示全部楼层
zhj1978 发表于 2014-4-4 13:06
我只是举了个例子,说明情况,其实数据源很多的,请帮忙

大致做了下,请测试!{:1712:}
  1. Sub test()
  2. Dim d As Object
  3. Dim ar
  4. Dim i As Long, j As Long
  5. Dim sr As String
  6. Application.ScreenUpdating = False
  7. Cells.ClearComments
  8. Set d = CreateObject("scripting.dictionary")
  9. ar = Sheet1.Cells(1, 1).CurrentRegion
  10. For i = 2 To UBound(ar)
  11. sr = ar(i, 4) & vbTab & ar(i, 5)
  12. If d.exists(sr) Then
  13. d(sr) = d(sr) & vbCrLf & ar(i, 6) & " " & ar(i, 7)
  14. Else
  15. d.Add sr, ar(i, 6) & " " & ar(i, 7)
  16. End If
  17. Next i
  18. ar = Sheet2.Cells(1, 1).CurrentRegion
  19. For i = 3 To UBound(ar)
  20. For j = 3 To UBound(ar, 2)
  21. sr = ar(2, j) & vbTab & ar(i, 2)
  22. If d.exists(sr) Then Cells(i, j).AddComment d(sr)
  23. Next j
  24. Next i
  25. Application.ScreenUpdating = True
  26. End Sub
复制代码

帮忙.zip

18.1 KB, 下载次数: 4

回复

使用道具 举报

发表于 2014-4-4 13:32 | 显示全部楼层
zhj1978 发表于 2014-4-4 13:06
我只是举了个例子,说明情况,其实数据源很多的,请帮忙

完善了下,请再测试哈!{:1712:}
  1. Sub test()
  2.     Dim d As Object
  3.     Dim ar
  4.     Dim i As Long, j As Long
  5.     Dim sr As String
  6.     Application.ScreenUpdating = False
  7.     Cells.ClearComments
  8.     Set d = CreateObject("scripting.dictionary")
  9.     ar = Sheet1.Cells(1, 1).CurrentRegion
  10.     For i = 2 To UBound(ar)
  11.         sr = ar(i, 4) & vbTab & ar(i, 5)
  12.         If d.exists(sr) Then
  13.             d(sr) = d(sr) & vbCrLf & ar(i, 6) & " " & ar(i, 7)
  14.         Else
  15.             d.Add sr, ar(i, 6) & " " & ar(i, 7)
  16.         End If
  17.     Next i
  18.     ar = Sheet2.Cells(1, 1).CurrentRegion
  19.     For i = 3 To UBound(ar)
  20.         For j = 3 To UBound(ar, 2)
  21.             sr = ar(2, j) & vbTab & ar(i, 2)
  22.             If d.exists(sr) Then
  23.                 With Cells(i, j)
  24.                     .AddComment d(sr)
  25.                     .Comment.Shape.TextFrame.AutoSize = True
  26.                 End With
  27.             End If
  28.         Next j
  29.     Next i
  30.     Application.ScreenUpdating = True
  31. End Sub
复制代码

帮忙.zip

16.49 KB, 下载次数: 10

回复

使用道具 举报

 楼主| 发表于 2014-4-4 13:35 | 显示全部楼层
windimi007 发表于 2014-4-4 13:22
大致做了下,请测试!

首先按照对方科目、二级科目、部门汇总出金额来.
第一步就没有实现,首先先汇总,然后写批注
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-25 04:54 , Processed in 0.333547 second(s), 17 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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