vba字典重复key_利用VBA字典,提取两列数据的重复值
大家好,今日我们继续讲解VBA数组与字典解决方案,今日讲解第52讲:利用字典,提取两列数据重复值。有人讲:字典是VBA中最为精华的部分,持这种观点的人肯定有自己的道理,确实,利用字典可以给我的代码带来很大的方便之处,今日我讲解的是利用字典,提取两列的重复数据.在实际的工作中排重和提取重复的数据是很常见的工作,如果直接进行比较核对,真的很费事费时,之前我讲过数据库的方法,不失为一种好的方案.今日我们讲解利用字典的方法,这也是一种非常好的方案.
实例,下面的AB列数据,我们要提取出在A中与B列重复的数据,该如何进行?
我们首先看看数据,很多是重复的,我们首先要进行排重处理,一般的方案难于应付,下面看我给出的字典方案代码:
Sub mynzsz_52() '第52讲 利用字典,提取两列数据重复值
Sheets("52").Select
Set mydic = CreateObject("Scripting.Dictionary")
myarr1 = Range([A2], [A65536].End(xlUp))
myarr2 = Range([B2], [B65536].End(xlUp))
For i = 1 To UBound(myarr1)
'将键值赋值为0
mydic(myarr1(i, 1)) = 0
Next
For j = 1 To UBound(myarr2)
'如果数组2在字典中存在相应的键,那么将键值更改为1
If mydic.exists(myarr2(j, 1)) Then mydic(myarr2(j, 1)) = 1
Next
'对于字典中的每个键进行判断,如果相应的键值为0,也就是说在数组2中不存在,那么移除
For Each d In mydic.keys
If mydic(d) = 0 Then mydic.Remove (d)
Next
'将字典数据回填到工作表
[e:e].ClearContents
Range("e1") = "A列中与B列重复的值"
Range("e2").Resize(mydic.Count, 1) = WorksheetFunction.Transpose(mydic.keys)
End Sub
代码截图:
代码解析:
1 上述代码实现了提取重复数据并排重的功能,代码简洁,操作灵活.
2. Set mydic = CreateObject("Scripting.Dictionary")
上述代码创建了一个字典
3. myarr1 = Range([A2], [A65536].End(xlUp))
myarr2 = Range([B2], [B65536].End(xlUp))
上述代码分别将两列数据放到数组中.
4 For i = 1 To UBound(myarr1)
'将键值赋值为0
mydic(myarr1(i, 1)) = 0
Next
将数组1的数据放到字典的键中同时键值赋值为0
5 For j = 1 To UBound(myarr2)
'如果数组2在字典中存在相应的键,那么将键值更改为1
If mydic.exists(myarr2(j, 1)) Then mydic(myarr2(j, 1)) = 1
Next
在数组2中建立循环,如果在字典中存在相应的键,那么将键值更正为1
6 For Each d In mydic.keys
If mydic(d) = 0 Then mydic.Remove (d)
Next
将字典中的数据进行处理,假如键值为0,那么移除
7 '将字典数据回填到工作表
[e:e].ClearContents
Range("e1") = "A列中与B列重复的值"
Range("e2").Resize(mydic.Count, 1) = WorksheetFunction.Transpose(mydic.keys)
上述代码数据回填.
下面看代码的运行:
今日内容回向:
1 利用字典如何获取重复数据的值?
2 上述代码中为什么要对键值重新赋值?
vba字典重复key_利用VBA字典,提取两列数据的重复值相关推荐
- vba 提取 json某个值_利用VBA字典,提取两列数据的重复值
大家好,今日我们继续讲解VBA数组与字典解决方案,今日讲解第52讲:利用字典,提取两列数据重复值.有人讲:字典是VBA中最为精华的部分,持这种观点的人肯定有自己的道理,确实,利用字典可以给我的代码带来 ...
- Excel如何统计两列数据有多少重复值
如下图.是某班级期中和期末考试前二十名学生名单,现在想要快速统计出两次考试均在前二十名的学生人数. 在D2单元格输入公式=COUNT(MATCH(A2:A21,B2:B21,0)),以CTRL+SHI ...
- excel两列数据对照重复值
这里用的是laravel框架,需求是把几个sheet里面的两列的重复值筛选出来,excel本身好像有这个函数,但不太会用,自定义也不强,我就自己写了个函数,直接上代码: public function ...
- arcgis字段计算器利用python按不同两列数据进行编号
示例 代码 # -*- coding: utf-8 -*- A=1 B=1 C=1 A1=1 B1=1 C1=1 A2=1 B2=1 C2=1 A3=1 B3=1 C3=1 A4=1 B4=1 C4= ...
- python提取两列数据对比_使用Python的Dataframe取两列时间值相差一年的所有行方法...
在使用Python处理数据时,经常需要对数据筛选. 这是在对时间筛选时,判断两列时间是否相差一年,如果是,则返回符合条件的所有列. data原始数据: data[map(lambda x:dateti ...
- Excel(WPS)使用VBA,不打开文件情况下提取其他工作簿数据
Excel(WPS)使用VBA,不打开文件情况下提取其他工作簿数据 提取函数,返回提取到的值 使用示例 在不打开工作簿的情况下,VBA读取其他工作簿数据 很多方法需要打开才能提取,如果没打开会显示错误 ...
- 绑定dictionary 给定关键字不再字典中_VBA代码集锦-利用字典做两列数据的对比并对齐...
源数据: 代码: Sub 对比() Dim arr, brr, crr Dim i, j, n, lastrowA, lastrowB As Integer '建立字典对象 Set d = Creat ...
- 查询时拼接两列数据_如何用VBA代码查询两列数据差异?
爱就一个字,我只说一次-- 北京市第三交通委提醒您:代码千万条,注释第一条,命名不规范,修订两行泪-- 咳,给大家拜晚年了,再提前祝大家元宵快乐-- 我们今天和大家分享的内容是如何用VBA代码查询两列 ...
- xlsx表格怎么筛选重复数据_excel表格如何筛选重复数据 在Excel表格的两列数据中提取不重复值的四种方法...
excel表格如何筛选重复数据 在Excel表格的两列数据中提取不重复值的四种方法,最近到了季度汇报的时候,掌握一手excel技能在此刻显得多么重要,为了是你的excel看起来更高大上,今天教大家设置 ...
- 多种方法实现从Excel表格的两列数据中提取不重复(唯一)值
在Excel表格中有两列数据如何提取不重复值,即从两列中提取不重复(唯一)值,本文指将两列中所有相同行的两个单元格数据连接后去掉重复项.大家可以看到在下图的A.B两列中,有部分行两个单元格中的数据相同 ...
最新文章
- 转 小辉_Ray CORS(跨域资源共享)
- js回调函数和函数带参数的使用示例
- 代码中应用设计模式,看这一篇就够了
- Xamarin.Forms项目无法添加服务引用
- 如何撰写对用户有吸引力的标题
- QT的QScriptValueIterator类的使用
- 在SAP CRM呼叫中心的搜索结果点击Edit按钮后的处理逻辑
- 每日英语:Why Sit Up Straight?
- 存储世界瞬息万变 SSD掀行业浪潮
- php实现播放直播_PHP直播技术分享(一:实现直播)
- 蓝牙打印和网口打印的实现
- JDK/JRE/JVM之间的关系
- LOJ #6285. 数列分块入门 9-分块(查询区间的最小众数)
- concat效率 mysql_MYSQL数据库mysql中or效率高还是in效率高
- win10虚拟服务器安装xp,win10安装xp虚拟机安装教程_win10安装xp虚拟机详细步骤
- 如何不授权情况下获取自己微信openid/傻瓜式获取
- View inflate 原理
- 大数据是什么,大数据的主要特点是什么?
- 泉州地区的“会子”是一种怎样的制度?
- 浅析image,imagesc,imshow的用法