vba 提取 json某个值_利用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 提取 json某个值_利用VBA字典,提取两列数据的重复值相关推荐
- Excel如何统计两列数据有多少重复值
如下图.是某班级期中和期末考试前二十名学生名单,现在想要快速统计出两次考试均在前二十名的学生人数. 在D2单元格输入公式=COUNT(MATCH(A2:A21,B2:B21,0)),以CTRL+SHI ...
- excel两列数据对照重复值
这里用的是laravel框架,需求是把几个sheet里面的两列的重复值筛选出来,excel本身好像有这个函数,但不太会用,自定义也不强,我就自己写了个函数,直接上代码: public function ...
- excel如何筛选一列数据的重复值,并找到其他列的对应数据
excel如何筛选一列数据的重复值,并找到其他列的对应数据.就会用到excel的高级筛选功能.如下: 经过筛选,就得到我们想要的结果了.
- Excel2016表格中只有一列数据有重复值,怎么快速删除重复值
环景: win 10 专业版 office2016 问题描述: 表格中只有一列数据有重复值,怎么快速删除重复值 解决方案: 1.菜单栏-数据-删除重复值 2.选中要删除的那列D列-删除重复值 3.确定 ...
- 绑定dictionary 给定关键字不再字典中_VBA代码集锦-利用字典做两列数据的对比并对齐...
源数据: 代码: Sub 对比() Dim arr, brr, crr Dim i, j, n, lastrowA, lastrowB As Integer '建立字典对象 Set d = Creat ...
- oracle中修改多个字段默认值_利用VBA代码在已有的数据表中删除、添加、修改字段...
大家好,今日继续给大家讲解VBA数据库解决方案的第21讲,如何利用VBA代码在已有的数据表中删除,添加,修改字段.这个内容是操作数据库的一项必修的内容,还望大家在实际工作中多利用,所以这节的知识,对于 ...
- vba显示正在加载_利用VBA代码显示工作簿的路径及完全路径的方案及对工作薄的操作...
分享成果,随喜真能量.大家好,今日内容仍是和大家分享VBA编程中常用的简单"积木"过程代码,这些内容多是取至我的"VBA代码解决方案"教程中内容.NO.139- ...
- Java反射设置list的属性值_利用java反射比较两个实体有哪些属性值不一样
分享一个利用反射实现比较两个实体属性值的方法: package net.zwq1105.test; import java.beans.Introspector; import java.beans. ...
- python计算相关性显著性p值_基于python实现计算两组数据P值
我们在做A/B试验评估的时候需要借助p_value,这篇文章记录如何利用python计算两组数据的显著性. 一.代码# TTest.py # -*- coding: utf-8 -*- ''' # C ...
最新文章
- Yolov3网络架构分析
- 内存检测工具Dr. Memory的使用
- 了解GAN背后的设计,训练,损失函数和算法
- 美国版“非升即走”瞄准终身教授,2年评审不通过就减薪撤职,其他高校开始抢人...
- 函数的实参 函数的形参 闭包 js
- UA MATH563 概率论的数学基础 鞅论初步10 Doob可选停止定理与一维随机游走的exiting time
- Codeforces Round #660 (Div. 2)
- 从MapX到MapXtreme2004[4]-标注AutoLabel
- 软件工程学习进度表06
- 《高性能MySQL-第三版》 的总评价
- linux系统amd驱动怎么安装教程,ubuntu amd显卡驱动安装教程
- excel一列求和_EXCEL表格怎么自动求和?4种典型批量求和套路
- pythonweb数据可视化_基于Python实现交互式数据可视化的工具(用于Web)
- springboot2.0整合logback日志(详细)
- 论文《Are We Really Making Much Progress? A Worrying Analysis of Recent Neural Recommendation ...》阅读
- python代码书写_如何优雅的书写Python代码, python使用小技巧
- 一篇文章解读人工智能的原理及产业升级机会
- css实现聊天气泡对话框
- #Sora#peewee plus celery = ?
- 修改elmentui中el-date-picker下拉框样式(大小)
热门文章
- Python 的垃圾回收回收机制(源码)
- 训练数据的分布对F-measure, recall 和 precision的影响
- Java 高级特性 --- 反射
- Replace Array with Object(以对象取代数组)
- TPTP(Java Profiling Tools插件)对Java程序进行性能测试
- SQL Server查询中特殊字符的处理方法
- C++学习之路 | PTA乙级—— 1026 程序运行时间(精简)
- C++学习之路 | PTA乙级—— 1004 成绩排名 (20分)(精简)
- python22个字符串长度_python字符串处理内置方法一览表
- 用java编写保留两位小数_Java保留两位小数的几种写法总结