以前从没在Excel中利用VBA汇总过数据,其实在Excel中也几乎没有汇总过数据,主要要是因为很多时候汇总还不如直接计算来的直接。既然看到这儿了,就把汇总数据好好学习一下吧。

根据实际情况一般而言,需要汇总的数据源有两种:①在同一工作簿中的所有工作表或指定工作表;②不同工作簿中的指定工作表(这种情况下往往不会是所有工作簿中的所有工作表)。下面分情况解决:

①在同一工作簿中的所有工作表的汇总:

先解决可以进行的汇总操作:

xlAverage   计算平均值
xlCount     计数
xlCountNums 数值计数
xlMax       最大值
xlMin       最小值
xlProduct   乘积
xlStDev     标准偏差
xlStDevP    总体标准偏差
xlSum       求和
xlVar       方差
xlVarP      总体方差

其中红色部分是为比较常用的,下面看一个示例:

目的是想把每个人在一月、二月、三月的各项业务量汇总求和到新工作表(汇总表)中。

对一月、二月、三月中的人名不作要求,可以不尽相同,也并不一定非得是只有3项业务,也可以业务4、业务5等等,这些都可以包括在内。

代码:

Sub ConsolidateDemo()
     Dim Arr  As Variant
     Arr = Array("一月!R1C1:R5C4", "二月!R1C1:R6C5", "三月!R1C1:R5C4")
     With Worksheets("汇总").Range("A1")
         .Consolidate Sources:=Arr, Function:=xlSum, _
                    TopRow:=True, LeftColumn:=True
         .Value = "姓名"
     End With
 End Sub
上面的代码中,首先定义一个数组,利用数组函数Array来给数组Arr赋值,然后在汇总工作表中的A1单元格填充汇总数据,来源是数组Arr的元素,要进行的汇总操作函数是xlSum求和,基于顶端行的列标题进行计算,基于左边列的行标题进行计算,这与实际情况也一致。

代码还可以进行进一步的简化,由于这些工作表都是存在于同一工作簿中,所以完全省略Sources参数,这样默认就是对当前工作簿中的其他工作表的A1单元格的当的区域进行汇总。

因为Consolidate方法同时基于行列汇总时将忽略区域左上角的内容,所以需要另外添加代码为左上角单元格赋值。

Sub ConsolidateDemo2()
     Dim Arr  As Variant
     With Worksheets("汇总").Range("A1")
         .Consolidate Function:=xlSum, _
                    TopRow:=True, LeftColumn:=True
         .Value = "姓名"
     End With
 End Sub
这段代码有用吗?有,用处非常大,比如在进行评比时,经常是分组分项对选手进行打分,这时评委手中拿到的都是针对所有选手或部分选手,而打分的项目往往是不同的,这时就可以利用这段代码对所有原始评分表进行汇总,然后再进行处理。

43 Things: Excel VBA
BuzzNet: Excel VBA
del.icio.us: Excel VBA
Flickr: Excel VBA
IceRocket: Excel VBA
LiveJournal: Excel VBA
Technorati: Excel VBA
 菊子曰:专业的博客管理软件

转载于:https://www.cnblogs.com/xiehui/archive/2011/04/29/2033091.html

VBA实战技巧精粹018:如何汇总数据相关推荐

  1. VBA实战技巧精粹012:查找指定目录下的指定文件及Dir函数用法

    问题:有处理学生评语,限于网络条件,往往学生提交的都是单个文件,这就需要将其一一提取出来,然后进行判断.导出等操作,但首先要解决的就是查找所有文件如何操作,这里需要用到Dir函数,当然创建一个文件搜索 ...

  2. VBA实战技巧精粹004:在工作簿中添加新工作表

    使用Worksheets集合或Sheets集合的Add方法可以实现在指定位置添加新工作表,并且添加后的新工作表自动为活动工作表. Sub 插入新工作表并改名()     With Worksheets ...

  3. VBA实战技巧精粹011:新建只有1张工作表的工作簿

    问题提出:默认情况下,新建工作簿时都是给出3张工作表,如果在让老师们整理一些材料时,不清楚的老师往往乱点,如果一个工作簿只有1张工作表的话,就可以有效地避免这个现象. 解决代码: Sub AddNew ...

  4. VBA实战技巧精粹017:如何快速删除空白单元格所在的行

    这个问题应该可以说几乎算不上问题的,就是从后往前逐个单元格进行检查就可以,只要为空,就将该单元格所在行删掉.但今天发现一个更快速的方法,利用specialcells方法,速度更快.冲着这个执行的速度, ...

  5. 文本分类实战技巧(tricks)汇总

    目录 前言 关于分词器 关于中文字向量 如果数据集噪声很严重 baseline选用CNN还是RNN?路线沿着CNN还是RNN走? Dropout加在哪里 关于二分类 关于多标签分类 类别不均衡怎么办 ...

  6. excel函数与公式实战技巧精粹_excel函数技巧:两个查询函数的用法比较 下

    编按:今天是VLOOKUP与LOOKUP双雄战的第三回合.在前两个回合中,VLOOKUP旗开得胜,连胜两局.第三回合是交叉查询,LOOKUP能否展开反击止住颓势呢? ----------------- ...

  7. 【SQL开发实战技巧】系列(二十一):数据仓库中时间类型操作(进阶)识别重叠的日期范围,按指定10分钟时间间隔汇总数据

    系列文章目录 [SQL开发实战技巧]系列(一):关于SQL不得不说的那些事 [SQL开发实战技巧]系列(二):简单单表查询 [SQL开发实战技巧]系列(三):SQL排序的那些事 [SQL开发实战技巧] ...

  8. 【SQL开发实战技巧】系列(七):从有重复数据前提下如何比较出两个表中的差异数据及对应条数聊起

    系列文章目录 [SQL开发实战技巧]系列(一):关于SQL不得不说的那些事 [SQL开发实战技巧]系列(二):简单单表查询 [SQL开发实战技巧]系列(三):SQL排序的那些事 [SQL开发实战技巧] ...

  9. 【SQL开发实战技巧】系列(十五):查找最值所在行数据信息及快速计算总和百之max/min() keep() over()、fisrt_value、last_value、ratio_to_report

    系列文章目录 [SQL开发实战技巧]系列(一):关于SQL不得不说的那些事 [SQL开发实战技巧]系列(二):简单单表查询 [SQL开发实战技巧]系列(三):SQL排序的那些事 [SQL开发实战技巧] ...

  10. 【SQL开发实战技巧】系列(八):聊聊如何插入数据时比约束更灵活的限制数据插入以及怎么一个insert语句同时插入多张表

    系列文章目录 [SQL开发实战技巧]系列(一):关于SQL不得不说的那些事 [SQL开发实战技巧]系列(二):简单单表查询 [SQL开发实战技巧]系列(三):SQL排序的那些事 [SQL开发实战技巧] ...

最新文章

  1. 绿盟科技与CCF成立“鲲鹏”科研基金 计划发力5大领域资助16个项目
  2. Nature封面:人类还在看提词器,AI的辩论能力却出现了重大进展
  3. checkbox反复调用attr('checked', true/false)只有第一次生效
  4. html5数组查找第二大数,2021-06-29:在两个都有序的数组中找整体第K小的数。
  5. [Swust OJ 247]--皇帝的新衣(组合数+Lucas定理)
  6. ML的BD框架-Hadoop.Mahout.Strom.Spark/GraphLab
  7. Java JDBC中,MySQL字段类型到JAVA类型的转换
  8. 【蓝桥杯官网试题 - 算法提高 】求最大值 (dp,0-1背包)
  9. Java中try必须要结合catch吗_如何优雅的实现 try/catch 异常块?
  10. iOS中的 深拷贝和浅拷贝
  11. Lecture Notes: Macros
  12. IBM ServerGuide导航光盘下载列表
  13. 分析:谷歌不会退出中国市场的8大理由
  14. ICEM: 合并混合网格
  15. 微信小程序UI设计规范及文档模版
  16. dejavu歌曲识别介绍
  17. 苹果Mac突然没有声音,3 种方法快速解决没声音的问题
  18. 深度学习-图神经网络总结
  19. Frank-Cucumber - Core Frank Steps
  20. 10827 - Maximum sum on a torus

热门文章

  1. Selenium3 Java自动化测试完整教程
  2. kali linux2019镜像下载,Kali 2019下载_KaLi Linux镜像文件iso下载 2019.1a x86/x64_当载软件站...
  3. 瑞斯凯X9D Plus无法连接DCL模拟器的解决方法
  4. Spring Batch 入门教程
  5. centos下修改mysql默认端口
  6. 支持傲腾技术的服务器主板,采用英特尔® 傲腾™ 技术的数据中心存储
  7. Win7 SP1 安装python 3.8时,提示 KB2533623 update is required to continue
  8. Linux学习笔记(详细)
  9. linux 安装adobe字体,Adobe Creative Cloud应用程序已更新,为iOS 13和iPadOS提供免费的自定义字体...
  10. 隐秘?混乱?商业化?记者深入总部,探寻OpenAI“拯救世界”背后的真相