谈起Excel的函数,有一个函数生来自带明星光环,在表哥表姐群体中无人不知,介绍它的教程更是铺天盖地,此乃VLOOKUP函数也。
今天Excel催化剂在这里冒着被火喷的风险,大胆地宣布一个比VLOOKUP更好用更易用的自定义函数诞生,有它之后,VLOOKUP可减少50%以上的使用频率,性能某些场景上较VLOOKUP更强悍,运算速度数倍于VLOOKUP。

文章出处说明

原文在简书上发表,再同步到Excel催化剂微信公众号或其他平台上,文章后续有修改和更新将在简书上操作, 其他平台不作同步修改更新,因此建议阅读其他出处的文章时,尽可能跳转回简书平台上查看。

一般性现状

一般在Excel小白用户眼中,看到VLOOKUP函数可以一口气帮忙查找匹配出整列多条的记录时,想必是惊呆了一般,若换成人工去查找或厉害一点懂得用查找替换界面去查找的人来说,这可是极大的效率上的提升,简单无比的神奇。

但对于每天不断地在VLOOKUP函数不断重复使用的熟练表哥表姐们来说,VLOOKUP函数并非那么完美,就算请出它的大哥LOOKUP函数来,也仅有些许的改善而已,还是没能达到一种随心所欲同时兼顾性能上的流畅的感觉。

VLOOKUP的局限性

1.只能引用区域里的首列

若查找引用区域的引用列不在第1列,需要手动调整数据列的顺序,可能部分原因不允许调整列顺序或调整列顺序对原有数据不友好。有一致使问题是若多列的方式查找引用,需要费劲地另外做一个辅助列放到引用区域的首列

2.返回的结果值需要去手动数是对应查找引用区域的首列的右侧第几列

当查找引用的区域里的列数太多,需要很小心地去观察或手工数是第几列。

3.在模糊匹配中,对查找引用区域的数据源有排序的要求

对数据源要求排序,在标准的数据表结构的数据里是不太合理的要求,一不小心就破坏了排序升序这个要求。

4.当查找值对应的表的记录数过多时,使用VLOOKUP的效率很低

一般使用VLOOKUP的场景为:需要从一些属性表里引用一些属性列的内容,在查找值的表一般定义为流水表,数据记录数随着时间推移,数据记录数很大,动不动一个VLOOKUP函数下来,Excel就卡个半天没动静。

Excel催化剂查找引用函数使用场合

因Excel催化剂的自定义函数,使用数组函数的方式输出,一次性多个结果输出,某些场景下可显著提升速度。

在避免上述提及到的VLOOKUP使用的局限性上,Excel催化剂查找引用函数更适合的场景为在一个流水表里,需要到一些属性表里去查找引用一些扩展属性。

一般来说,属性表的记录数不会太大,而对应的流水表里,需要查找的值会有大量的重复值出现,在Excel催化剂的函数处理方式中,仅对唯一值进行计算,多个重复值也只会计算一次。

若满足上述提到的场景,速度性能必定比直接使用VLOOKUP要高出许多。

函数详细使用介绍

函数:CZYY查找引用LOOKUP

1.查找列为一列的时候,且仅为精确查找时

直接写入前三个参数。
返回列ReturnValueRange的位置不限制于在引用列ReferenceRange的左边还是右边。
查找值区域、引用区域和返回区域仅能输入一列的数据。

单列查找函数参数界面

精确查找
2.查找列为多列的时候,且仅为精确查找时

使用辅助函数FZGetMultiColRange来引用多列的内容(和上一篇的函数【FZJS分组列合并】是一样的,因较多的场景需要使用,把它重新定义了全英文名称方便书写)。

查找列LookupValueRange和引用列ReferenceRange,仅需按顺序两者输入多列,无需在数据源中使用辅助列来构造新列。

多列查找时输入参数方式

多列查找效果
3.当需要使用模糊查找时

VLOOKUP的模糊查找,在一些区间定义的场景特别好用,Excel催化剂的自定义函数亦提供此功能。

因VLOOKUP函数算法处理的原因,要求升充排序,但本次开发的自定义函数无需提前升序排列亦可处理。

因一般性的场景是大量的重复数据需要标记引用区域的返回列的内容,故虽算法不如原生VLOOKUP的先进,但在大量重复数据的情况下,性能的优越性不输原生的VLOOKUP,同时对数据源无需额外排序要求。

无需升序处理的模糊查找功能

VLOOKUP仅支持的升序排列取最后一个小于等于查找值的记录,本次自定义函数对其进行扩展,可实现对数据降序排列后,取最后一个大小等于查找值的记录。

首创降序排列的模糊查找

VLOOKUP的模糊查找时,查找值的内容仅能在数值上使用,本次自定义函数对模糊查找过程中的查找值,突破性地可以使用文本比较大小。

对模糊查找过程中的查找值,突破性地可以使用文本比较大小

原生VLOOKUP函数返回的结果不是预期结果

函数:CZYY查找引用INDEX

对于经典的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催化剂插件使用最新的布署技术,实现一次安装,日后所有更新自动更新完成,无需重复关注更新动态,手动下载安装包重新安装,只需一次安装即可随时保持最新版本!

Excel催化剂插件下载链接:https://pan.baidu.com/s/1kDtFkM5KZ4R1lAO0TO07AA

因插件使用VSTO开发技术完成,插件的安装需要电脑满足相关的环境配置才能运行,且需可连接外网的方式实现自动更新机制,若下载安装过程中有任何疑问或需要离线版安装等,尽量不单独私聊询问,加QQ群可高效解决(群内已汇集了VSTO开发、Powerbi技术、Sqlserver商业智能等方面的国内顶尖大牛人物,进群的好处不用多说了)

Excel催化剂插件交流群群二维码

联系作者.png

公众号.png

取名催化剂,因Excel本身的强大,并非所有人能够立马享受到,大部分人还是在被Excel软件所虐的阶段,就是头脑里很清晰想达到的效果,而且高手们也已经实现出来,就是自己怎么弄都弄不出来,或者更糟的是还不知道Excel能够做什么而停留在不断地重复、机械、手工地在做着数据,耗费着无数的青春年华岁月。所以催生了是否可以作为一种媒介,让广大的Excel用户们可以瞬间点燃Excel的爆点,无需苦苦地挣扎地没日没夜的技巧学习、高级复杂函数的烧脑,最终走向了从入门到放弃的道路。

最后Excel功能强大,其实还需树立一个观点,不是所有事情都要交给Excel去完成,也不是所有事情Excel都是十分胜任的,外面的世界仍然是一个广阔的世界,Excel只是其中一枚耀眼的明星,还有其他更多同样精彩强大的技术、工具等。*Excel催化剂也将借力这些其他技术,让Excel能够发挥更强大的爆发!

关于Excel催化剂作者

姓名:李伟坚,从事数据分析工作多年(BI方向),一名同样在路上的学习者。
服务过行业:零售特别是鞋服类的零售行业,电商(淘宝、天猫、京东、唯品会)

技术路线从一名普通用户,通过Excel软件的学习,从此走向数据世界,非科班IT专业人士。
历经重重难关,终于在数据的道路上达到技术平原期,学习众多的知识不再太吃力,同时也形成了自己的一套数据解决方案(数据采集、数据加工清洗、数据多维建模、数据报表展示等)。

擅长技术领域:Excel等Office家族软件、VBA&VSTO的二次开发、Sqlserver数据库技术、Sqlserver的商业智能BI技术、Powerbi技术、云服务器布署技术等等。

2018年开始职业生涯作了重大调整,从原来的正职工作,转为自由职业者,暂无固定收入,暂对前面道路不太明朗,苦重新回到正职工作,对Excel催化剂的运营和开发必定受到很大的影响(正职工作时间内不可能维护也不可能随便把工作时间内的成果公布于外,工作外的时间也十分有限,因已而立之年,家庭责任重大)。

和广大拥护者一同期盼:Excel催化剂一直能运行下去,我所惠及的群体们能够给予支持(多留言鼓励下、转发下朋友圈推荐、小额打赏下和最重点的可以和所在公司及同行推荐推荐,让我的技术可以在贵司发挥价值,实现双赢(初步设想可以数据顾问的方式或一些小型项目开发的方式合作)。)

个人永久性免费-Excel催化剂功能第38波-比Vlookup更好用的查找引用函数的更多相关文章

  1. 个人永久性免费-Excel催化剂功能第105波-批量调整不规范的图形对象到单一单元格内存储

    在日常制表过程中,一个不得不面对的问题,许多的工作起点是基于其他人加工过的表格,无论自己多大的本领,面对不规范的其他人的制作的表格,经过自己的手,该擦的屁股还是要自己去亲手去擦,而带出来的也只会是一堆 ...

  2. 个人永久性免费-Excel催化剂功能第104波-批量选择多种类型的图形对象

    在Excel的日常操作过程中,选择绝对是一个高频的操作,之前开发过一些快速选择单元格区域的辅助功能,除了单元格区域,Excel强大之处在于,类似PhotoShop那般可以存放多种图形,并且有图层先后顺 ...

  3. 个人永久性免费-Excel催化剂功能第102波-批量上传本地图片至网络图床(外网可访问)

    自我突破,在100+功能后,再做有质量的功能,非常不易,相对录制视频这些轻松活,还是按捺不住去写代码,此功能虽小,但功课也做了不少,希望对真正有需要的群体带来一些惊喜. 背景介绍 图床的使用,一般是写 ...

  4. 个人永久性免费-Excel催化剂功能第103波-批量打开多文件或多链接

    有时简单的东西,却带来许多的便利,为了让大家可以记住并容易找寻到此功能,也将这么简单的功能归为一波,反正已经100+波了,也无需为了凑功能文章而故意罗列一些小功能带忽悠性地让人觉得很强大. 使用场景 ...

  5. 个人永久性免费-Excel催化剂功能第101波-批量替换功能(增加正则及高性能替换能力)

    数据处理无小事,正如没有人活在真空理想环境一下,在数据分析过程中,也没有那么真空理想化的数据源可以使用,数据处理占据数据分析的80%的时间,每一个小小的改善,获益都良多.Excel查找替换,有其局限性 ...

  6. 个人永久性免费-Excel催化剂功能第99波-手机号码归属地批量查询

    高潮过往趋于平静,送上简单的手机号码归属地查询,因接口有数量限制,仅能满足少量数据需求,如有大规模数据却又想免费获得,这就成为无解了,数据有价,且用且珍惜. 业务使用场景 除了日常自带的手机各种管家为 ...

  7. 个人永久性免费-Excel催化剂功能第100波-透视多行数据为多列数据结构

    在数据处理过程中,大量的非预期格式结构需要作转换,有大家熟知的多维转一维(准确来说应该是交叉表结构的数据转二维表标准数据表结构),也同样有一些需要透视操作的数据源,此篇同样提供更便捷的方法实现此类数据 ...

  8. 个人永久性免费-Excel催化剂功能第98波-零代码零距离轻松接触并拥有金融大数据

    数据产生价值的一个最突出的领域-金融领域,股票.证券.上市公司财务报表等,多少人在其中发掘出宝贵的数据价值.今天Excel催化剂联合Tushare金融大数据平台,让这一切的数据都能成为你我普通人零代码 ...

  9. 个人永久性免费-Excel催化剂功能第97波-快递单号批量查询物流信息

    电商时代,快递已进千万家,做电商零售行业的,快递信息的再挖掘,也显得更有意义,是数据精细化运营中必不可少的一环.一般站在系统的角度,数据用于业务流转的增删改查使用,而对于分析需求来说,这些业务系统里集 ...

随机推荐

  1. 修改GitHub上项目语言显示

    问题 最近将自己以Scala为主语言写的博客放到github上了.由于使用了富文本编辑器.jQuery.Bootstrap等第三方插件,导致js.css等代码远远超过你自己写的代码. 于是也就成这样了 ...

  2. 《CSS 设计指南》笔记(Ⅰ)

    在图书馆借了这本书,讲的非常好,条理清晰,深入浅出,真的有一种和作者交流的感觉,解决了自己很多困惑,于是决定针对一些平时并不常用但是感觉会用到的知识点做一些笔记,加深印象. 一. 块级元素盒子会扩展到 ...

  3. 判断本地系统目录下是否存在XML文件,如果不存在就创建一个XMl文件,若存在就在里面执行添加数据

    这是我为项目中写的一个测试的例子, 假如,您需要这样一个xml文件, <?xml version="1.0" encoding="utf-8"?> ...

  4. uva10883_Supermean_数学

    题目大意:给出n个数,每相邻两个数求平均数,得到n-1个数,再求平均数,得到n-2个数,......一直到最后一个数,输出这个数. 题目很简单,就是中间数据会比较大有点复杂,超过double的范围,而 ...

  5. 基于ASP.NET的新闻管理系统(二)效果展示

    5. 新闻管理系统开发与实现 5.1前台新闻页面 主页面 新闻栏展示新闻 搜索新闻 菜单栏链接新闻 后台登录界面 大管理员后台管理界面 小管理员后台管理界面 修改密码 增加新闻界面 栏目管理界面   ...

  6. is和==的区别以及编码和解码

    一.is和==的区别 python中对象包含的三个基本要素分别是:id(身份标识),type(数据类型),value(值) is和==都是对对象进行比较判断的,但对对象比较判断的内容不同. ★==是p ...

  7. SYN5006型电机同步编码脉冲分配器

    SYN5006型电机同步编码脉冲分配器 编码器信号分配板增量式编码器脉冲分配器使用说明视频链接: http://www.syn029.com/h-pd-81-0_310_13_-1.html 请将此链 ...

  8. 【转载】Spring Boot引起的“堆外内存泄漏”排查及经验总结

    背景 为了更好地实现对项目的管理,我们将组内一个项目迁移到MDP框架(基于Spring Boot),随后我们就发现系统会频繁报出Swap区域使用量过高的异常.笔者被叫去帮忙查看原因,发现配置了4G堆内 ...

  9. 【转】JDK 内存参数含义

    Eclipse崩溃,错误提示: MyEclipse has detected that less than 5% of the 64MB of Perm  Gen (Non-heap memory) ...

  10. idea初见问题整理_错误: -source 1.5 中不支持 diamond 运算符

    最近在移动工程到idea下,顺便改目录结构,遇到的问题不一定全部记录,有些答案摘抄自别人博客,已注明来源,由于不是摘抄自同一作者,且有自己的一些内容,所以标注为原创. 1.(错误: -source 1 ...