使用字典实现更加高效的VLOOKUP!

今天聊一下VBA字典的实际应用!如果你有VBA基础,可以看一下,没有基础的同学,就先进收藏夹!以后慢慢学习再看!

我们都不是0基础的同学了,铺垫就不需要了,直接进进入实际案例吧!刚写的,热乎着……

案例1 | 提取唯一值!

原理解析:利用字典Key的唯一性!我们把区域中的所有姓名全部加入到字典Key中,如果姓名已经存在字典中,就会使用后面的覆盖掉已有的!保证是唯一最新的记录!

案例2 | 实现VLOOKUP高效查找

左边是数据源,右边是要查找的项!这个使用工作表函数VLOOKUP非常简单!那么在VBA中,一般我们如何处理,能实现VLOOKUP的效果?

完整代码:

原理解析

1、字典使用Key->Value,键值对存储方式,Key具有唯一性!

2、可以根据Key快速查找到对应的Value实现类似于VLOOKUP的效果,但是字典速度更快,达到O(1),也就是说,海量数据下,他也是秒出结果!

3、VLOOKUP精确查找使用的是顺序遍历法,速度比较慢,在数据量大的情况下更加明显,一般在大量数据需要查找的情况下或者多添加复杂的情况下,我们会使用字典来处理!

案例3 | 数组+字典-棋盘法汇总法

完整源码:

本文由“壹伴编辑器”提供技术支持

原理解析

“棋盘法”的原理不是利用字典直接汇总,而是通过字典来标记用于存储汇总结果数组的索引!当需要汇总的类别首次出现的时候,我们把序号加1,加入到字典,已经存在就获取之前的索引,这样我们就能得到对应类别在数组中的位置,进而对齐进行累加或者其他聚合、拼接等操作!

VBA的Value可以装入对象,可拓展性很强,当然这所以中级篇内容,有时间我们再唠!

(0)

相关推荐