VBA用字典实现分类汇总(二)
在VBA中,字典是一个很重要的概念,有点你我们生活中用到的字典,(你可以通过pinyin或部首,查找到某个字),VBA中的字典,可以根据一个关键字(key)查询一个值(item),且关键字(key)是唯一的,不能重复,但是值(item)可以重复。利用字典这一特性唯一关键字---值的特性,可以快速进行分类汇总。
上一篇,讲了VBA中运用字典进行分类汇总的四种情况
1)单条件单列汇总
2)单条件多列汇总
3)多条件单列汇总
4)多条件多列汇总
但是前面这四种都是针对单一对象(如商品A或业务员张三商品A)进行的汇总,如果要做一个多个对象的汇总表,该如何做呢。比如,已知原始表见下方
表1:原始表:
产品 |
月份 |
费用 |
A |
1月 |
10 |
B |
1月 |
20 |
C |
1月 |
1000 |
A |
1月 |
10 |
B |
1月 |
200 |
C |
2月 |
309 |
D |
2月 |
24 |
E |
2月 |
34 |
A |
2月 |
33 |
B |
2月 |
12 |
C |
2月 |
3000 |
D |
3月 |
20 |
A |
3月 |
50000 |
C |
3月 |
2 |
E |
3月 |
34 |
A |
3月 |
800 |
D |
3月 |
30 |
A |
4月 |
10 |
B |
4月 |
20 |
C |
4月 |
1000 |
A |
4月 |
10 |
B |
5月 |
200 |
C |
5月 |
309 |
D |
5月 |
24 |
E |
5月 |
34 |
A |
5月 |
33 |
B |
5月 |
12 |
C |
6月 |
3000 |
D |
6月 |
20 |
A |
6月 |
50000 |
C |
6月 |
2 |
E |
6月 |
34 |
A |
6月 |
800 |
D |
6月 |
30 |
要求,根据上表(表1)数据做成如下格式的表2:分类汇总表
产品 |
1月 |
2月 |
3月 |
4月 |
5月 |
6月 |
合计 |
A |
|
|
|
|
|
|
|
B |
|
|
|
|
|
|
|
C |
|
|
|
|
|
|
|
D |
|
|
|
|
|
|
|
E |
|
|
|
|
|
|
|
分析思路:
表1原始表显然属于一维表,表2分类汇总表属于二维表。由表2可知需要汇总数据的关键字(key)为“产品“+”月份“ 或 “产品”+“合计”,这样的话,我们只需要在字典中将关键字(key)设置为“产品”+“月份” 或 “产品”+“合计”,如“A” & “-” & “1月”,“A” & “-” & “合计”。然后根据表2分类汇总表中的列标和行标确定关键字(key),如“A” & “-‘ & ”1月“,相对坐标为(2,2),将字典中key对应的值item,填入相应的位置(相对坐标(2,2)即可。
VBA代码如下:
Sub tt()
Dim arr, arr1
Dim d As New Dictionary
Dim n As Integer, i As Integer, j As Integer, st As String
Dim rg As Range
Dim r As Integer, c As Integer
n = Range("A65536").End(xlUp).Row
arr = Range(Cells(2, 1), Cells(n, 3))
For i = 1 To n - 1 Step 1
st = arr(i, 1) & "-" & arr(i, 2)
d(st) = d(st) + arr(i, 3)
st = arr(i, 1) & "-" & "合计"
d(st) = d(st) + arr(i, 3)
Next i
Set rg = Range("F1")
r = rg.CurrentRegion.Rows.Count
c = rg.CurrentRegion.Columns.Count
For i = 2 To r Step 1
For j = 2 To c Step 1
st = rg.Offset(i - 1, 0) & "-" & rg.Offset(0, j - 1)
rg.Offset(i - 1, j - 1) = d(st)
Next j
Next i
End Sub
VBA用字典实现分类汇总(二)相关推荐
- VBA用字典实现分类汇总(一)
VBA中字典的每一个key对应一个唯一的item,只要指定key的值,就可以马上返回其对应的item,利用字典这一特性可以实现快速的分类汇总.分类汇总可以分以下四种情况: 1.单条件单列汇总,如求商品 ...
- 20210112.使用字典来创建并分类汇总物品清单的python程序代码
20210112.使用字典来创建并分类汇总物品清单的python程序代码 #这段代码使用字典来创建并分类汇总物品清单.为<python编程快速上手--让繁琐工作自动化>一书中的5.6.1实 ...
- Excel VBA 多条件筛选及汇总统计
Excel VBA 多条件筛选 AdvancedFilter 汇总统计 sumproduct Range与Array交换 在日常工作中,面对Excel表格数据,为了分类进行统计,通过对表格数据筛选获取 ...
- sql查询语句_多字段分类汇总_多表合并
一.最初(最简单的入门实例,单个分类汇总) 1,查询语句/*药品费用分科室汇总*/ select c.sksxx02,sum(nvl(b.nfyxx06,0)) from yygli6 ...
- excel按季度分类汇总_Excel数据透视不会,分类汇总来帮忙,强的不是一点,学会它,错不了...
Excel数据透视不会,分类汇总来帮忙,强的不是一点,学会它,错不了 大家办公经常要用到Excel处理数据,想要对成千上万条数据做分类汇总,则需要做数据透视表和分类汇总功能:在数据量适中即小于万条时, ...
- Android开源项目分类汇总-转载
太长了,还是转载吧... 今天在看博客的时候,无意中发现了@Trinea在GitHub上的一个项目Android开源项目分类汇总,由于类容太多了,我没有一个个完整地看完,但是里面介绍的开源项目都非常有 ...
- Android开源项目分类汇总[转]
Android开源项目分类汇总 如果你也对开源实现库的实现原理感兴趣,欢迎 Star 和 Fork Android优秀开源项目实现原理解析 欢迎加入 QQ 交流群:383537512(入群理由需要填写 ...
- 2018年视觉所有干货博文的分类汇总
原文:转载自 我爱计算机视觉 https://mp.weixin.qq.com/s?__biz=MzIwMTE1NjQxMQ==&mid=2247485040&idx=1&sn ...
- sql 分类汇总 列_分类汇总哪家强?R、Python、SAS、SQL?
Excel数据透视表(Pivot Table)可以快速汇总大量数据,能够分类汇总和聚合数值数据,按类别和子类别汇总数据,功能十分强大,并且提供了展开.折叠.行列交换等交互式方法,对使用者来说十分的友好 ...
最新文章
- 李沐团队半年离开六人,MxNet是否英雄落幕?贾扬清:关键能否解决新痛点
- 数组做参数_ES6 系列:你不知道的 Rest 参数与 Spread 语法细节
- python代码计算图像的分辨率
- python数据处理实例-Python数据处理numpy.median的实例讲解
- [Python]网络爬虫(二):利用urllib2通过指定的URL抓取网页内容
- C语言插入排序Insertion Sort算法(附完整源码)
- Shell多线程操作及线程数控制实例
- 【CZY选讲·Yjq的棺材】
- 【转】系统管理员之企业生存守则
- 一本经典的程序员必看书籍————人月神话
- TextWatcher学习
- 电子技术部下半学期第一次培训
- IntelliJ IDEA使用教程
- 搜狗收录提交方法搜狗收录方法
- 论文阅读:Unprocessing Images for Learned Raw Denoising
- Android power键亮屏流程
- Minimum spanning tree
- Android 判断通知栏是否打开及前往设置页面
- 【历史上的今天】9 月 2 日:互联网的“诞生日”;三星逐步跌落神坛;世界上第一个 ATM 自动取款机
- 天嵌i.mx6q--1
热门文章
- python怎么通过手机号定位_python通过手机号获取微信男女性别
- 第1章 多媒体技术概要
- CodeMirror的认识和使用
- 【转】Vczh Library++3.0之可配置语法分析器(前言)
- summernote 的快速使用,以及解决图片写入数据库问题
- Vivado出现编译错误:[USF-XSim 62] 'compile' step failed with error(s) while executing...
- (专升本)Word插入操作(图片、剪贴画、屏幕截图、自选图形)
- html 设置整体字体,HTML字体的设置
- 移动IP技术研究(转)
- 利用Android手机为游戏手柄,超强的AIWI体感游戏