谈起Excel的函数,有一个函数生来自带明星光环,在表哥表姐群体中无人不知,介绍它的教程更是铺天盖地,此乃VLOOKUP函数也。 今天Excel催化剂在这里冒着被火喷的风险,大胆地宣布一个比VLOOKUP更好用更易用的自定义函数诞生,有它之后,VLOOKUP可减少50%以上的使用频率,性能某些场景上较VLOOKUP更强悍,运算速度数倍于VLOOKUP。
原文在简书上发表,再同步到Excel催化剂微信公众号或其他平台上,文章后续有修改和更新将在简书上操作, 其他平台不作同步修改更新,因此建议阅读其他出处的文章时,尽可能跳转回简书平台上查看。
一般在Excel小白用户眼中,看到VLOOKUP函数可以一口气帮忙查找匹配出整列多条的记录时,想必是惊呆了一般,若换成人工去查找或厉害一点懂得用查找替换界面去查找的人来说,这可是极大的效率上的提升,简单无比的神奇。
但对于每天不断地在VLOOKUP函数不断重复使用的熟练表哥表姐们来说,VLOOKUP函数并非那么完美,就算请出它的大哥LOOKUP函数来,也仅有些许的改善而已,还是没能达到一种随心所欲同时兼顾性能上的流畅的感觉。
若查找引用区域的引用列不在第1列,需要手动调整数据列的顺序,可能部分原因不允许调整列顺序或调整列顺序对原有数据不友好。有一致使问题是若多列的方式查找引用,需要费劲地另外做一个辅助列放到引用区域的首列
当查找引用的区域里的列数太多,需要很小心地去观察或手工数是第几列。
对数据源要求排序,在标准的数据表结构的数据里是不太合理的要求,一不小心就破坏了排序升序这个要求。
一般使用VLOOKUP的场景为:需要从一些属性表里引用一些属性列的内容,在查找值的表一般定义为流水表,数据记录数随着时间推移,数据记录数很大,动不动一个VLOOKUP函数下来,Excel就卡个半天没动静。
因Excel催化剂的自定义函数,使用数组函数的方式输出,一次性多个结果输出,某些场景下可显著提升速度。
在避免上述提及到的VLOOKUP使用的局限性上,Excel催化剂查找引用函数更适合的场景为在一个流水表里,需要到一些属性表里去查找引用一些扩展属性。
一般来说,属性表的记录数不会太大,而对应的流水表里,需要查找的值会有大量的重复值出现,在Excel催化剂的函数处理方式中,仅对唯一值进行计算,多个重复值也只会计算一次。
若满足上述提到的场景,速度性能必定比直接使用VLOOKUP要高出许多。
直接写入前三个参数。 返回列ReturnValueRange的位置不限制于在引用列ReferenceRange的左边还是右边。 查找值区域、引用区域和返回区域仅能输入一列的数据。
单列查找函数参数界面
精确查找
使用辅助函数FZGetMultiColRange来引用多列的内容(和上一篇的函数【FZJS分组列合并】是一样的,因较多的场景需要使用,把它重新定义了全英文名称方便书写)。
查找列LookupValueRange和引用列ReferenceRange,仅需按顺序两者输入多列,无需在数据源中使用辅助列来构造新列。
多列查找时输入参数方式
多列查找效果
VLOOKUP的模糊查找,在一些区间定义的场景特别好用,Excel催化剂的自定义函数亦提供此功能。
因VLOOKUP函数算法处理的原因,要求升充排序,但本次开发的自定义函数无需提前升序排列亦可处理。
因一般性的场景是大量的重复数据需要标记引用区域的返回列的内容,故虽算法不如原生VLOOKUP的先进,但在大量重复数据的情况下,性能的优越性不输原生的VLOOKUP,同时对数据源无需额外排序要求。
无需升序处理的模糊查找功能
VLOOKUP仅支持的升序排列取最后一个小于等于查找值的记录,本次自定义函数对其进行扩展,可实现对数据降序排列后,取最后一个大小等于查找值的记录。
首创降序排列的模糊查找
VLOOKUP的模糊查找时,查找值的内容仅能在数值上使用,本次自定义函数对模糊查找过程中的查找值,突破性地可以使用文本比较大小。
对模糊查找过程中的查找值,突破性地可以使用文本比较大小
原生VLOOKUP函数返回的结果不是预期结果
对于经典的INDEX+MATCH套路作查找引用交叉表数据,此次对其进行简化处理 更为直观地得到需要的结果,同时在查找数据中有大量重复数据时,此时多次重复值仅运算一次的优势再次出现,性能上可以有很大的提升。
自定义函数参数输入
对于函数的使用,本人一直坚持的理念是:一个函数处理一个场景,若不能单一的处理,尽量使用自定义函数的方式简化函数的逻辑。
不必追求过多的函数嵌套和各种复杂精妙技巧来完成。特别是需要交付给普通用户使用时,单个函数,清晰的参数指引输入,比各种复杂嵌套来得友好得多。
不是所有的牛奶都叫特仑舒,也不是所有的Excel使用者都需要学习那么复杂的函数使用,借助外力的二次开发自定义函数,掌握简单的IF和SUM函数的知识点,一样可以玩飞复杂的需求。
一文带你全面认识Excel催化剂系列功能 安装过程详解及安装失败解决方法 第1波-工作表导航 第2波-数字格式设置 第3波-与PowerbiDesktop互通互联 第4波-一大波自定义函数高级应用,重新定义Excel函数的学习和使用方法 第5波-使用DAX查询从PowerbiDeskTop中获取数据源 第6波-导出PowerbiDesktop模型数据字典 第7波-智能选区功能 第8波-快速可视化数据 第9波-数据透视表自动设置 第10波-快速排列工作表图形对象 第11波-快速批量插入图片 第12波-快速生成、读取、导出条形码二维码 第13波-一键生成自由报表 第14波-一键生成零售购物篮分析 第15波-接入AI人工智能NLP自然语言处理 第16波-N多使用场景的多维表转一维表 第17波-批量文件改名、下载、文件夹创建等 第18波-在Excel上也能玩上词云图 第19波-Excel与Sqlserver零门槛交互-查询篇 第20波-Excel与Sqlserver零门槛交互-数据上传篇 第21波-Excel与Sqlserver零门槛交互-执行SQL 第22波-Excel文件类型、密码批量修改,补齐Power短板 第23波-非同一般地批量拆分工作表 第24波-批量发送邮件并指点不同附件不同变量 第25波-小白适用的文本处理功能 第26波-正确的Excel密码管理之道 第27波-Excel工作表设置快捷操作 第28波-工作薄瘦身,安全地减少非必要冗余 第29波-追加中国特色的中文相关自定义函数 第30波-工作表快捷操作(批量创建、命名、排序、工作表目录) 第31波-数量金额分组凑数功能,财务表哥表姐最爱 第32波-空行空列批量插入和删除 第33波-报表形式数据结构转标准数据源 第34波-提取中国身份证信息、农历日期转换相关功能 第35波-Excel版最全单位换算,从此不用到处百度找答案 第36波-新增序列函数用于生成规律性的循环重复或间隔序列 第37波-把Sqlserver的强大分析函数拿到Excel中用
Excel催化剂先是一微信公众号的名称,后来顺其名称,正式推出了Excel插件,插件将持续性地更新,更新的周期视本人的时间而定争取一周能够上线一个大功能模块。Excel催化剂插件承诺个人用户永久性免费使用!
Excel催化剂插件使用最新的布署技术,实现一次安装,日后所有更新自动更新完成,无需重复关注更新动态,手动下载安装包重新安装,只需一次安装即可随时保持最新版本!
Excel催化剂插件下载链接:https://pan.baidu.com/s/1kDtFkM5KZ4R1lAO0TO07AA
因插件使用VSTO开发技术完成,插件的安装需要电脑满足相关的环境配置才能运行,且需可连接外网的方式实现自动更新机制,若下载安装过程中有任何疑问或需要离线版安装等,尽量不单独私聊询问,加QQ群可高效解决(群内已汇集了VSTO开发、Powerbi技术、Sqlserver商业智能等方面的国内顶尖大牛人物,进群的好处不用多说了)