Excel VBA 如何使用字典挑选重复的数据,让你加快数据整理效率_数据去重


或许在某些时候,在Excel的数据整理工作中,你经常会遇到对数据去重复值,然而数据去重一直是数据整理汇总过程中老生常谈的话题之一。当然我们的Excel对数据去除重复值,也提供了很多的方法,比如我们最最常用的删除重复项,还有数据透视表,或者SQL,再或者就是本文要说的VBA的字典和集合的处理方法了,当然每种方法都有他们自己的优点,但是我们今天来说说如何用字典完成这个工作,一起来学习吧!



 简单介绍一下什么是VBA字典,字典对象可以理解为一个二维数组。字典对象的第一列为Key(键),该列具有唯一性和不重复性,是字典对象最重要的特性之一,也是我们在本例中将会用到的;第二列为Item(条目)可以保存各种类型的变量和数字。


字典对象相对于其他的概念或许比较容易,他不仅可以极大地提升程序的运行效率,还可以精简我们的代码,优化代码结构。字典对象有六种方法(Add,Keys,Items,Exists,Rmove和RemoveAll)和四个属性(Count,Key,Item和CompareMode)。好了,我们一起来看看例子吧!


如下图所示,A列是我们的员工姓名,可以明显看到存在着重复值,这个时候我们可以用VBA的字典,在C列放置不重复值。

Excel VBA 如何使用字典挑选重复的数据,让你加快数据整理效率_数据_02



或者有些人就说了,这个例子很简单,根本就不用使用VBA来实现,用Excel自带的完成就可以,但是我们今天介绍的是VBA字典的经典开门应用,我们将会在后面的程序直接嵌套这个功能性的代码。



代码如下,其实看起来非常的简单简洁,d(s) = ""这句话才是本文的中心代码。这句代码的意思就是,将如果字典不存在这个关键字,那么就在字典中增加这个关键字,并且他的Item为空值。

Excel VBA 如何使用字典挑选重复的数据,让你加快数据整理效率_数据_03



好了,我们看看程序执行的效果吧!



Excel VBA 如何使用字典挑选重复的数据,让你加快数据整理效率_数据整理_04

执行完成以后的结果如下所示:



Excel VBA 如何使用字典挑选重复的数据,让你加快数据整理效率_数据去重_05

需要注意的是我们的代码中有一句s = arr(i, 1),是将数据类型赋值为字符串变量s,因为我们前面已经定义S为字符型变量。或许你有疑问,为什么要这样多此一举呢?这是因为在字典中关键字认为数值和文本型数值是不相等的,字典认为并不重复,这个特别请务必记住啦!


虽然对我们大部分用户来说,都不会再我们Excel使用VBA来提取重复值,但是或许在你需要的时候,你在写某段程序的时候,你就会发现我原来可以利用字典来完成这个。


如果有不明白的或者不懂的可以在下方留言,我们会一一解答的。

Excel VBA 如何使用字典挑选重复的数据,让你加快数据整理效率_数据去重_06



我是Excel教案,关注我持续分享更多的Excel技巧!