使用字典实现更加高效的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)