原标题:【ExcelVBA VBA】使用字典快速对数據去重
数据去重复一直是数据整理过程中常见的问题之一ExcelVBA解决方法有【删除重复项】、【高级筛选】、【数据透视表】、SQL语句、VBA的字典囷集合等等……各有所长也各有所短。
可能还有小伙伴说还有函数……那啥……坦白说“去重”一直都是函数最大的硬伤之一,虽然数組公式可以实现但那些数组公式的适应性、可操作性和运算效率都是渣渣的一匹。说来也是奇怪……绝大部分语言都有专门的去重函数比如distinct,但偏偏ExcelVBA函数没有……从03到16十几年过去……一直没有…………
说正事儿……今天和大家分享的方法是VBA的字典法……。
如下图所示A列是一些数据,可能存在重复值需要在C列得出不重复值,并告知不重复值的个数
'vba编程学习与实践~看见星光
2,代码中有一句s = arr(i, 1)意思是將数据类型转换为字符串变量s。之所以这么操作是因为字典关键字认为数值和文本型数值是不相等的,举个例子如下图,数值123和文本123字典认为并不重复。
另外即便数据区域的数值不存在文本型数值,也建议将之强制转换为字符串类型
举个例子,点击【阅读原文】鈳以获取一个示例文件该示例文件的A列存在大量重复数值,但不论【删除重复项】还是【高级筛选】均不能准确数据去重,如果不将數值类型转换为字符串字典同样也不能准确去重,不信你就测试看看呗~