大家好,今日我们继续讲解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字典,提取两列数据的重复值相关推荐

  1. vba 提取 json某个值_利用VBA字典,提取两列数据的重复值

    大家好,今日我们继续讲解VBA数组与字典解决方案,今日讲解第52讲:利用字典,提取两列数据重复值.有人讲:字典是VBA中最为精华的部分,持这种观点的人肯定有自己的道理,确实,利用字典可以给我的代码带来 ...

  2. Excel如何统计两列数据有多少重复值

    如下图.是某班级期中和期末考试前二十名学生名单,现在想要快速统计出两次考试均在前二十名的学生人数. 在D2单元格输入公式=COUNT(MATCH(A2:A21,B2:B21,0)),以CTRL+SHI ...

  3. excel两列数据对照重复值

    这里用的是laravel框架,需求是把几个sheet里面的两列的重复值筛选出来,excel本身好像有这个函数,但不太会用,自定义也不强,我就自己写了个函数,直接上代码: public function ...

  4. 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= ...

  5. python提取两列数据对比_使用Python的Dataframe取两列时间值相差一年的所有行方法...

    在使用Python处理数据时,经常需要对数据筛选. 这是在对时间筛选时,判断两列时间是否相差一年,如果是,则返回符合条件的所有列. data原始数据: data[map(lambda x:dateti ...

  6. Excel(WPS)使用VBA,不打开文件情况下提取其他工作簿数据

    Excel(WPS)使用VBA,不打开文件情况下提取其他工作簿数据 提取函数,返回提取到的值 使用示例 在不打开工作簿的情况下,VBA读取其他工作簿数据 很多方法需要打开才能提取,如果没打开会显示错误 ...

  7. 绑定dictionary 给定关键字不再字典中_VBA代码集锦-利用字典做两列数据的对比并对齐...

    源数据: 代码: Sub 对比() Dim arr, brr, crr Dim i, j, n, lastrowA, lastrowB As Integer '建立字典对象 Set d = Creat ...

  8. 查询时拼接两列数据_如何用VBA代码查询两列数据差异?

    爱就一个字,我只说一次-- 北京市第三交通委提醒您:代码千万条,注释第一条,命名不规范,修订两行泪-- 咳,给大家拜晚年了,再提前祝大家元宵快乐-- 我们今天和大家分享的内容是如何用VBA代码查询两列 ...

  9. xlsx表格怎么筛选重复数据_excel表格如何筛选重复数据 在Excel表格的两列数据中提取不重复值的四种方法...

    excel表格如何筛选重复数据 在Excel表格的两列数据中提取不重复值的四种方法,最近到了季度汇报的时候,掌握一手excel技能在此刻显得多么重要,为了是你的excel看起来更高大上,今天教大家设置 ...

  10. 多种方法实现从Excel表格的两列数据中提取不重复(唯一)值

    在Excel表格中有两列数据如何提取不重复值,即从两列中提取不重复(唯一)值,本文指将两列中所有相同行的两个单元格数据连接后去掉重复项.大家可以看到在下图的A.B两列中,有部分行两个单元格中的数据相同 ...

最新文章

  1. 转 小辉_Ray CORS(跨域资源共享)
  2. js回调函数和函数带参数的使用示例
  3. 代码中应用设计模式,看这一篇就够了
  4. Xamarin.Forms项目无法添加服务引用
  5. 如何撰写对用户有吸引力的标题
  6. QT的QScriptValueIterator类的使用
  7. 在SAP CRM呼叫中心的搜索结果点击Edit按钮后的处理逻辑
  8. 每日英语:Why Sit Up Straight?
  9. 存储世界瞬息万变 SSD掀行业浪潮
  10. php实现播放直播_PHP直播技术分享(一:实现直播)
  11. 蓝牙打印和网口打印的实现
  12. JDK/JRE/JVM之间的关系
  13. LOJ #6285. 数列分块入门 9-分块(查询区间的最小众数)
  14. concat效率 mysql_MYSQL数据库mysql中or效率高还是in效率高
  15. win10虚拟服务器安装xp,win10安装xp虚拟机安装教程_win10安装xp虚拟机详细步骤
  16. 如何不授权情况下获取自己微信openid/傻瓜式获取
  17. View inflate 原理
  18. 大数据是什么,大数据的主要特点是什么?
  19. 泉州地区的“会子”是一种怎样的制度?
  20. 浅析image,imagesc,imshow的用法

热门文章

  1. python发送短信接口_Python发短信接口
  2. 激光导航技术是如何实现的?
  3. 加拿大 计算机学校排名2015,2015年加拿大大学综合排名
  4. Nginx支持ipv6
  5. 【ubuntu20】虚拟机下ubuntu联网
  6. Unity如何开发微信小游戏
  7. matlab求取状态方程的传递函数并实现系统解耦
  8. Dubbo服务调用流程源码分析(服务调提供方)
  9. 新手淘宝开店店铺运营的六大核心技能
  10. 怎样才可以关掉Mac电脑开机启动项?