场景二:模拟VLOOKUP(HLOOKUP同理)的精确匹配
假定此处,要根据Name来匹配Address,我们只需要先将姓名(key),地址(value,也就是Item)顺序存入字典,再根据Item方法读取某个Name对应的值。如果对应的Name在字典中没有找到,则address会返回空值,代码示例如下:
场景三:实现Vlookup不易实现的从右至左反向查找功能
假设很不凑巧,我们的【姓名】字段在【地址】字段后面,常规的Vlookup函数需要用到if还有数组 来实现,网上有很多相关资料,可惜公式对于新手而言,不是很容易理解,如果用字典来实现就太简单了,我们很容易在存入字典时调整列顺序,几乎没有多余的学习成本,代码如下:
场景四:我们要根据【姓名】,匹配【地址】和【公司简称】
传统的方法,自然需要编写两个Vlookup公式,那么用字典来实现的话,同样传统的方法,我们需要两个字典(把它用两个字典分别查出地址和公司简称即可),这没啥难理解。如果我们要匹配的列数很多,则需要建立多个字典,难免语法上有些繁琐。如果想通过一个字典就实现查找多列的效果,你们想到偷懒的好法子了吗?
其实我们只需要将多列(value)加上特殊字符后拼接成一个value,最终取出来的时候,再基于这个特殊符号来split这个value,得到的数组每个元素其实就对应要查找的多列的值,此处小爬以同时查找地址和公司简称为例说明该trick。
示例代码如下:
场景五:匹配某个key最后一次出现的value
传统的vlookup精确匹配,我们总是匹配到第一个值,这个我们的场景二方案中已有使用字典的实现代码。比如此例中,假设姓名存在重名,我们要匹配最后一次出现的某个【姓名】对应的【公司简称】,使用vlookup将会很难实现,但是当我们有了字典,你会发现,原来可以这么简单干脆就解决我们以为的痛点,示例代码如下:
其实利用vba字典来实现数据查找的案例远不止这些,小爬列举的五个场景,不过是其广阔应用的冰山一角。
希望通过对字典的功能和案例的介绍,能够对童鞋们今后的办公自动化工作有所启发,能够善用字典,在实际工作中真正用起来,感受它的魅力~~
快来扫码关注我的公众号 获取更多爬虫、数据分析的知识!