本例的问题描述:

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_提取重复值,但字典不是重点。相关推荐

  1. Excel中两列数据对比,找出不同数据如何查找重复项并统计重复次数

    Excel中两列数据对比,找出不同数据 问题1 excel如何查找重复项并统计重复次数 问题2

  2. WPS高亮显示重复项并删除重复项有效防止数据重复录入

    在录入众多数据之后,难免会有一些重复,对于这些重复的数据可以高亮显示,如此一来就会提高工作效率,那么如何高亮重复项和删除重复项呢?下面有个不错的教程,全程为大家详细讲解一下.有不会的朋友可不要错过喽, ...

  3. Excel 计算重复项中的唯一值的方法

    计算重复项中的唯一值 假设你想要了解包含重复值的范围中有多少个唯一值. 例如,如果列包含: 值 5.6.7 和 6,结果为三个唯一值 - 5.6 和 7. 值"Bradley".& ...

  4. ExcelVBA使用删除重复项获取不重复记录

    ExcelVBA使用删除重复项获取不重复记录 关注微信公众号:VBA168 每天更新Excel VBA经典代码,祝你工作和学习更轻松! 利用单元格区域的RemoveDuplicates方法可以去除重复 ...

  5. EXCEL中对一列数据每隔n行提取数据出来

    工作中,当表格中记录的数据较多,我们又不需要那么多的数据时,同时想希望对一列数据每隔n行提取一个数据出来,这时我们便可以利用excel提供的公式进行数据的提取,处理数据也会更方便... 以下便是我们要 ...

  6. exce中让两列数据一一对应_工作中被重复数据所烦恼?学会这几个Excel技巧,少加班...

    工作中,经常被重复的数据所困扰,那就学下这几个关于重复值的技巧,每天5分钟,工作更轻松! 1.快速查找单列重复数据 如果某一列中,有的数据是重复的,我们希望把它找出来,可以在条件格式中突出单元格,然后 ...

  7. excel比较两组或两列数据的相同项和不同项

    本例主要向大家介绍如何快速比较excel中两列数据中的相同数据.不同数据,如果需要,将上述相同或不同数据提取出来. 1.首先,在C1输入公式 =MATCH(A1,B:B,) 回车后下拉公式,如果返回的 ...

  8. java清洗hive去除重复数据_hiveql删除重复项,包括重复的记录

    我有一个select语句,我存储在数据帧中.... val df = spark.sqlContext.sql("select prty_tax_govt_issu_id from CST_ ...

  9. 查询重复项以及删除重复项

    –查询出重复项.Deptid,catecode,pid为联合主键.可以换成要查询的内容 select Deptid,catecode,pid,COUNT(0) as num,Max(DepVsSzID ...

最新文章

  1. 【原】Java学习笔记020 - 面向对象
  2. 上海python培训比较好的机构-上海python培训机构哪个好?
  3. 悲观锁和乐观锁的详细分析
  4. 2016四季度 服务器收入和出货量双下滑
  5. ABAP to Json
  6. 前端学习(3014):vue+element今日头条管理--表单验证基本使用2
  7. 如何配置三层交换机创建VLAN 7
  8. python正则表达式元字符用法_正则表达式-常用元字符的基本使用
  9. [UE4]控制台命令,生成机器人
  10. 计算机键盘驱动,修改键盘驱动程序_基本计算机知识_IT /计算机_信息
  11. 数据分析 告诉你《飞驰人生》为什么这么燃?
  12. 第四章不定积分(∫(e^x)sin²xdx)
  13. 用DIV+CSS技术设计的网页与实现制作【体育文化】dreamweaver学生网页设计
  14. 爬取了 36141 条评论数据,解读 9.5 分的《海王》是否值得一看
  15. 湮没在先秦的【文士道】精神
  16. 【数据结构】栈的实现与简单应用
  17. Linux下文件解压缩、软件安装
  18. 小米手环3 NFC 自定义 门禁卡数据
  19. vue实现修改用户信息的全过程
  20. 从零开始微信机器人(一):wxpy简介(登录、消息发送、注册回复)

热门文章

  1. [设计模式] - 策略模式(Java篇)
  2. 中国电信:全业务IP网络的安全运营
  3. Cisco CCNP 笔记(一)
  4. PHP超级配置模块--PHP4,PHP5,module,cgi任你玩转--应用于Apache
  5. 用递归求最大值PHP,php如何使用递归来计算一个目录中所有文件的大小(代码)...
  6. php getid3,PHP getID3类的使用方法学习笔记【附getID3源码下载】
  7. mysql php 新手卡生成_6个强大的PHP/Mysql代码生成器介绍
  8. [蓝桥杯][算法提高]能量项链(区间dp)
  9. Android 指纹调试流程(高通、MTK均适用)
  10. PAT_B_1029_Java(20分)