Excel精英培训网

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

[已解决]如何分类计算多列数据?

[复制链接]
发表于 2015-4-15 17:42 | 显示全部楼层 |阅读模式
如何根据“数据源”中的单位进行分类,并分别计算两列“数量”的总数?想要的结果见“目标结果”。详细见附件。谢谢!
最佳答案
2015-4-17 06:24
  1. Sub Macro1()
  2. Dim rng As Range, i&
  3. Sheet1.Activate
  4. Application.ScreenUpdating = False
  5. Application.DisplayAlerts = False
  6. ActiveSheet.UsedRange.Clear
  7. [c1] = "合计1": [e1] = "合计2"
  8. With Sheets("数据源")
  9.     .[a:b].Copy [a1]
  10.     .[c:c].Copy [d1]
  11. End With
  12. Set rng = Cells(2, 1)
  13. For i = 3 To Range("a65536").End(xlUp).Row + 1
  14.     If Cells(i, 1) = Cells(i - 1, 1) Then
  15.         Set rng = Union(rng, Cells(i, 1))
  16.     Else
  17.         Cells(i - 1, 3) = Application.Sum(rng.Offset(0, 1))
  18.         Cells(i - 1, 5) = Application.Sum(rng.Offset(0, 3))
  19.         rng.Offset(0, 2).Merge
  20.         rng.Offset(0, 4).Merge
  21.         Set rng = Cells(i, 1)
  22.     End If
  23. Next
  24. Application.DisplayAlerts = True
  25. Application.ScreenUpdating = True
  26. End Sub
复制代码

如何分类计算多列数据?.rar

4.18 KB, 下载次数: 13

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2015-4-16 11:01 | 显示全部楼层
1.jpg 2.jpg


如果只想求出各单位的合计,其实用数据透视表就很方便了。
非要弄成目标"目标结果"工作表中的样子?

回复

使用道具 举报

 楼主| 发表于 2015-4-16 21:26 | 显示全部楼层
爱疯 发表于 2015-4-16 11:01
如果只想求出各单位的合计,其实用数据透视表就很方便了。
非要弄成目标"目标结果"工作表中的样子? ...

首先谢谢你的回复!其实我想要的是分开的数据和合计的数据同时显示。。所以就想要“目标结果”的样式了。。可以吗??谢谢!!
回复

使用道具 举报

发表于 2015-4-17 06:24 | 显示全部楼层    本楼为最佳答案   
  1. Sub Macro1()
  2. Dim rng As Range, i&
  3. Sheet1.Activate
  4. Application.ScreenUpdating = False
  5. Application.DisplayAlerts = False
  6. ActiveSheet.UsedRange.Clear
  7. [c1] = "合计1": [e1] = "合计2"
  8. With Sheets("数据源")
  9.     .[a:b].Copy [a1]
  10.     .[c:c].Copy [d1]
  11. End With
  12. Set rng = Cells(2, 1)
  13. For i = 3 To Range("a65536").End(xlUp).Row + 1
  14.     If Cells(i, 1) = Cells(i - 1, 1) Then
  15.         Set rng = Union(rng, Cells(i, 1))
  16.     Else
  17.         Cells(i - 1, 3) = Application.Sum(rng.Offset(0, 1))
  18.         Cells(i - 1, 5) = Application.Sum(rng.Offset(0, 3))
  19.         rng.Offset(0, 2).Merge
  20.         rng.Offset(0, 4).Merge
  21.         Set rng = Cells(i, 1)
  22.     End If
  23. Next
  24. Application.DisplayAlerts = True
  25. Application.ScreenUpdating = True
  26. End Sub
复制代码
回复

使用道具 举报

 楼主| 发表于 2015-4-17 11:47 | 显示全部楼层
dsmch 发表于 2015-4-17 06:24

谢谢!是我主要的结果了。。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-27 05:51 , Processed in 0.374432 second(s), 12 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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