检查一列数据的重复项 vba_提取重复值,但字典不是重点。
本例的问题描述:
1:源数据与提取的结果在同一个工作表里面;
2:提取K、M、O、Q列里面不重复的数据(注意,数据列里面有空白的行);
3:把提取出来的结果放在A2单元格的下方,不能有空白行;
源数据及目标结果如下:
解决的思路详解:
1:由于K、M、O、Q四列不连续,且中间还有数据(在截图的时候,中间的数据删除了,实际运用的时候,是有数据的)还有空白的单元格出现。所以arr = sht.Range("a1").CurrentRegion这种方法就不适用了;
2:获取一列的最后一个非空单元行,再用Range“K1:K100”)类似这样的方式来获取列的区域了;
3:由于四列的不连续,所以循环需要一点小的技巧,详见后续的代码;
4:提取不重复的值,相信看过之前的文章都知道,要用到字典了;
代码运行的结果如下:
代码如下:
Sub test()
Dim arr, col, i, j, dic
Set dic = CreateObject("scripting.dictionary")
col = Split("K m o q")
For i = 0 To UBound(col)
arr = Range(col(i) & "1").Resize(Cells(Rows.Count, col(i)).End(xlUp).Row)
For j = 3 To UBound(arr, 1)
If Len(arr(j, 1)) Then dic(arr(j, 1)) = j
Next j, i
[a2].Resize(dic.Count).ClearContents
[a2].Resize(dic.Count) = Application.Transpose(dic.keys)
End Sub
代码解析
1:2行 定义变量;
2:3行 后期绑定字典;
3:4行 把四列不连续的只放入col数组;
4:5~6行 遍历col数组,获取最后一列的非空单元格之后,与第一列的区域,赋值给arr数组;
5:7行 遍历arr数组;
6:8行 用len判断单元格的类容是否为非空,把不是空的单元格放入字典d;
7:10行 清除指定区域的内容;
8:11行 把结果赋值给指定的区域;
本例思考:
1:本例思维两点,是把不连续的列数据,用循环来提取。
小结:
解决本问题,需要用的知识点:
1:字典的经典运用;
2:split函数
延伸阅读:
Excel VBA 数组公式Split 和Join
Excel VBA 字典的常用方式
Excel VBA 字典入门key和item
Excel VBA 按照要求提取数据,数据及字典法
点击关注可以更方便的查看Excel VBA的案例文章
私信 视频 可以获取54集VBA入门视频
私信 VBA或 vba 可以获取文章中含VBA代码的Excle文件
检查一列数据的重复项 vba_提取重复值,但字典不是重点。相关推荐
- Excel中两列数据对比,找出不同数据如何查找重复项并统计重复次数
Excel中两列数据对比,找出不同数据 问题1 excel如何查找重复项并统计重复次数 问题2
- WPS高亮显示重复项并删除重复项有效防止数据重复录入
在录入众多数据之后,难免会有一些重复,对于这些重复的数据可以高亮显示,如此一来就会提高工作效率,那么如何高亮重复项和删除重复项呢?下面有个不错的教程,全程为大家详细讲解一下.有不会的朋友可不要错过喽, ...
- Excel 计算重复项中的唯一值的方法
计算重复项中的唯一值 假设你想要了解包含重复值的范围中有多少个唯一值. 例如,如果列包含: 值 5.6.7 和 6,结果为三个唯一值 - 5.6 和 7. 值"Bradley".& ...
- ExcelVBA使用删除重复项获取不重复记录
ExcelVBA使用删除重复项获取不重复记录 关注微信公众号:VBA168 每天更新Excel VBA经典代码,祝你工作和学习更轻松! 利用单元格区域的RemoveDuplicates方法可以去除重复 ...
- EXCEL中对一列数据每隔n行提取数据出来
工作中,当表格中记录的数据较多,我们又不需要那么多的数据时,同时想希望对一列数据每隔n行提取一个数据出来,这时我们便可以利用excel提供的公式进行数据的提取,处理数据也会更方便... 以下便是我们要 ...
- exce中让两列数据一一对应_工作中被重复数据所烦恼?学会这几个Excel技巧,少加班...
工作中,经常被重复的数据所困扰,那就学下这几个关于重复值的技巧,每天5分钟,工作更轻松! 1.快速查找单列重复数据 如果某一列中,有的数据是重复的,我们希望把它找出来,可以在条件格式中突出单元格,然后 ...
- excel比较两组或两列数据的相同项和不同项
本例主要向大家介绍如何快速比较excel中两列数据中的相同数据.不同数据,如果需要,将上述相同或不同数据提取出来. 1.首先,在C1输入公式 =MATCH(A1,B:B,) 回车后下拉公式,如果返回的 ...
- java清洗hive去除重复数据_hiveql删除重复项,包括重复的记录
我有一个select语句,我存储在数据帧中.... val df = spark.sqlContext.sql("select prty_tax_govt_issu_id from CST_ ...
- 查询重复项以及删除重复项
–查询出重复项.Deptid,catecode,pid为联合主键.可以换成要查询的内容 select Deptid,catecode,pid,COUNT(0) as num,Max(DepVsSzID ...
最新文章
- 【原】Java学习笔记020 - 面向对象
- 上海python培训比较好的机构-上海python培训机构哪个好?
- 悲观锁和乐观锁的详细分析
- 2016四季度 服务器收入和出货量双下滑
- ABAP to Json
- 前端学习(3014):vue+element今日头条管理--表单验证基本使用2
- 如何配置三层交换机创建VLAN 7
- python正则表达式元字符用法_正则表达式-常用元字符的基本使用
- [UE4]控制台命令,生成机器人
- 计算机键盘驱动,修改键盘驱动程序_基本计算机知识_IT /计算机_信息
- 数据分析 告诉你《飞驰人生》为什么这么燃?
- 第四章不定积分(∫(e^x)sin²xdx)
- 用DIV+CSS技术设计的网页与实现制作【体育文化】dreamweaver学生网页设计
- 爬取了 36141 条评论数据,解读 9.5 分的《海王》是否值得一看
- 湮没在先秦的【文士道】精神
- 【数据结构】栈的实现与简单应用
- Linux下文件解压缩、软件安装
- 小米手环3 NFC 自定义 门禁卡数据
- vue实现修改用户信息的全过程
- 从零开始微信机器人(一):wxpy简介(登录、消息发送、注册回复)
热门文章
- [设计模式] - 策略模式(Java篇)
- 中国电信:全业务IP网络的安全运营
- Cisco CCNP 笔记(一)
- PHP超级配置模块--PHP4,PHP5,module,cgi任你玩转--应用于Apache
- 用递归求最大值PHP,php如何使用递归来计算一个目录中所有文件的大小(代码)...
- php getid3,PHP getID3类的使用方法学习笔记【附getID3源码下载】
- mysql php 新手卡生成_6个强大的PHP/Mysql代码生成器介绍
- [蓝桥杯][算法提高]能量项链(区间dp)
- Android 指纹调试流程(高通、MTK均适用)
- PAT_B_1029_Java(20分)