打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
学习VBA,报表做到飞 第三章 字典 3.6 字典关键字选取
userphoto

2023.04.05 云南

关注

第三章 字典

3.6 字典关键字选取

字典关键字的选取非常重要。为了确保健值的唯一性,我们可以选取表中的某一个字段作为关键字,也可以选取几个字段联合起来作为关键字。我们通过一个案例来说明多个字段作为关键字的用法。

小程序:

把下表中的数据按照班级和等级汇总后,输出到E列形成右边的表格。

班级

分数

等级

班级

分数

等级

一班

77

C

一班

152

C

一班

87

B

一班

87

B

一班

75

C

二班

72

E

二班

44

E

二班

97

A

二班

28

E

三班

66

D

二班

97

A

三班

193

A

三班

66

D

四班

267

B

三班

94

A

五班

184

A

三班

99

A

五班

63

D

四班

88

B

六班

88

B

四班

89

B

六班

191

A

四班

90

B

五班

91

A

五班

63

D

五班

93

A

六班

88

B

六班

91

A

六班

100

A

Sub 多字段关键字()

Dim d As New Dictionary

arr = Range('a1').CurrentRegion

For i = 1 To UBound(arr)

If d.Exists(arr(i, 1) & arr(i, 3)) Then

d(arr(i, 1) & arr(i, 3)) = Array(arr(i, 1), arr(i, 2) + d(arr(i, 1) & arr(i, 3))(1), arr(i, 3))

Else

d.Add arr(i, 1) & arr(i, 3), Array(arr(i, 1), arr(i, 2), arr(i, 3))

End If

Next

[e1].resize(d.Count, 3) = Application.Transpose(Application.Transpose(d.Items))

End Sub

在这个程序里,把班级和等级联合起来作为关键字,形成如下图所示的字典:

字典的条目仍然使用数组方式,所以汇总数据的代码变为 arr(i, 2) + d(arr(i, 1) & arr(i, 3))(1),循环出来的数据加上联合字段对应条目的第2项,即d(arr(i, 1) & arr(i, 3))(1)。

字典这一章节到这里就准备告一段落了。本章节篇幅较少,主要得益于字典的方法和属性简单实用。通过本章节的学习我们发现,字典是一个很好用的工具,在去除重复项、汇总统计等方面发挥着巨大作用,代码简洁,运行速度非常快。在使用时,字典与数组结合,会相得益彰,事半功倍。字典的关键字,可以是表格里的一列,也可以是多列值的联合值,主要是看实际情况中哪个值是唯一的。字典的条目,使用嵌套数组,可以对多列数据同时进行汇总统计,使数据处理变得更高效。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
使用VBA按某列中的关键字拆分为单独的工作簿
看完这篇,如果你还不懂VBA字典,那我就没办法了
ExcelVBA字典实现窗体二级下拉菜单
带您走进字典2
Excel中字典应用综合示例
Excel 常见字典用法集锦及代码详解3
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服