背景
Excel的vlookup函数是做数据统计分析的常用函数,当数据量达到上万行甚至几十万行时使用vlookup函数匹配结果将要面临漫长的等待,但数据量又不至于拿到数据库处理,为了解决此问题用vba写了个加快vlookup的工具。(关键字:vlookup太卡、vlookup太慢、vlookup卡死)
基础教程开始👇
1、打开与激活窗口
打开没反应:
(如果你打开没有任何反应,可能是因为你的excel禁用了宏并不发出通知,解决启用宏具体操作百度很多教程。另外如果你频繁使用此工具不想要提示宏安全的话建议信任所有宏启动)
(如果你通过了上面的操作后打开还是没有反应,可能是因为文件不被信任,excel启动了受保护的视图。出现这个问题可能是因为传递excel文件时没有压缩,建议在底部网盘链接重新下载压缩文件。如果不是压缩的问题,尝试一下以下操作:先关闭其他excel文件,只打开此文件👉点击‘视图’👉点击‘取消隐藏’👉选择取消隐藏的工作簿,点击‘确定’👉上方出现受保护的视图的提示,点击‘启动编辑’,使文件可编辑👉点击‘视图’👉‘隐藏’本文件👉点击右上方X关闭工作簿👉提示保存文件,点击‘保存’保存文件👉完成操作,以后打开就不会对该文件启动保护视图了)
(office版本过低可能存在兼容性问题,推荐使用office2010及以上版本)
双击打开vlookup工具,如果禁止宏了需要<启用宏>
点击<确定>激活主窗口,或者点击右上角X驻留后台(最小化)
最小化之后按快捷键 {Alt}+{方向键 ↑}
或者点击“视图”→点击“宏”→选中VlookupTool宏→点击<执行>
以上两种方式都可以激活主窗口,推荐使用快捷键
2、匹配工作开始
测试数据是以下两个excel文件进行匹配,数据量是一百万行。
现在需要把<数据来源>的表<账号与手机号对应表>中的列<手机号码>
匹配到<账号清单>的表<账号清单>中的列<对应手机号>中去
平时,只需要一个vlookup,然后双击往下填充就可以了,像这样:
但是!数据量这么大即便性能好的电脑都需要等待半小时以上,老电脑甚至卡死。
现在,用此工具便可完成这个操作。
前面已经打开了工具了,正在后台默默等待激活使用。
按住快捷键{ALT}+{方向键↑}激活窗口
选择好对应的工作簿、工作表、列,然后点击<开始>
等待处理,耗时138.9秒!
基础教程完结👆
特点介绍👇
1、多数情况比自带函数快,直接写入结果值,方便快捷。
2、忽视字符型数值型查找结果
下图结果显示标黄区域(数据源前十行与查找列后五行)数值类型为字符型自带vlookup不能找到结果,此工具都能找出来
3、自定义无结果值
下图显示,勾选了‘替换无结果值’填入‘该账号不存在’
结果显示‘#N/A’直接替换成‘该账号不存在’
4、把重复结果串联
串联勾选重复结果,可把有重复结果的串联起来
5、可以选择是否忽略英文大小写
黄色区域是小写,匹配结果如图
详细介绍👇
1、其中蓝色框是查找范围(数据源)及匹配哪一列的值,绿色框是需要查找的值及填充列,与Excel自带VLOOKUP函数关系请看上图;
2、选择列时以下拉框形式选择,显示内容为工作表第一行的值,假如为空值显示NULL,选择完成后自动读取当前列字母及有效行数显示在下面的灰色框;
3、“起始行”代表把匹配结果从选择的列中第几个单元格往下写入,通常除去首行就是在第二行开始,默认值为2;
4、“替换无结果值”按需勾选,可以将无法索引的结果替换为特定的值,默认勾选,默认替换值为#N/A;
5、“重复结果串联值”按需求勾选,不勾选时遇到当索引有多个结果时取第一个值,勾选时将多个结果连接一起,用特定值相隔,默认替换值为&,默认不勾选;
6、“重新加载工作簿”,工具不能实时读取新打开的工作簿,当后面新打开的工作簿未能读取时点击重新加载便可。
7、勾选忽略大小写时会忽略索引列的英文大小写,默认不忽略(自带的vlookup函数默认忽略)
8、点击左下角可以进行打赏哦。
下载使用
百度云下载链接:https://pan.baidu.com/s/1bRsR4twtk3bvj3GP27SLdQ
提取码:re9n
想看码源的请到Github:https://github.com/StinkCat/VlookupTool
更新情况
2019-11-27 更新:添加处理进度(解决出现鼠标打圈假死情况)
2020-06-22 更新:添加匹配时可否忽略大小写
2020-07-08 更新:解决最后写入数据时卡顿可能出现进度窗口被遮挡问题
2021-04-16 更新:1、调整窗口大小 2、更改统计行数方法修复尾行有太多空白行导致卡死