Excel技巧,VLOOKUP函数,不用数组如何来做多条件查找!
Excel技巧,VLOOKUP函数,不用数组如何来做多条件查找!
前面一篇文章讲过,在excel中使用vlookup函数,结合IF函数来构建数组,进行一对多查找时,虽然高效但有一个弊端:那就是当数据量比较大的时候,Excel处理的速度会变慢,甚至导致电脑卡顿死机,那有什么办法解决呢?
下面通过两个案例来做下对比,在庞大的数据量面前,使用数组和不用数组的方法进行多条件查找时的区别。
案例要求根据部门和产品编号,在左侧的产品表中查找出右侧查询表里对应的产品销售信息。如下图所示:

使用VLOOKUP+IF+数组做多条件查找
左侧产品表一共有5000多行数据,右侧查询表有将近1000条要查询的记录
选中K3单元格,在编辑栏中输入公式:
=VLOOKUP($I3&$J3,IF({1,0},$A:$A&$B:$B,C:C),2,0)
按Ctrl+Shift+Enter,因为有数组参与计数,所以要同时按这三键。并向右向下填充公式至M1001单元格。等待Excel计算中,如下动图所示:
大概等了有五六分钟,数据才计算完毕。如果数据量达到上万条,估计电脑会死机。
这里的函数公式解析,不做具体介绍了,大家可以看我上一篇文章当VLOOKUP函数遇到多条件查找时,请IF和数组来帮忙!。下面我们再来看看另外一个方法怎么样。
VLOOKUP借助辅助列进行多条件查找
在使用VLOOKUP函数进行查找之前,分别要在产品表和查询表中构建辅助列,构建方法详见下面的动图:
辅助列构建完毕,分别在产品表左侧增加了一个辅助列,并对后面的部门和产品编号进行了连接,如:A3=B3&C3;在查询表中间增加了一个辅助列:L3=J3&K3(销售2部产品2122)。
接下来我们开始使用VLOOKUP函数进行查找,选中M3单元格,在编辑栏中输入公式:
=VLOOKUP($L3,$A:$F,COLUMN(D1),0)
按回车键结束,并向右向下拖动复制公式至M1001单元格。结果如下动图所示:
这次是不是很快,几乎不需要等待就计算完成了。
公式解析:
第1参数:$L3,表示要查找的值,即构建的辅助列,=J3&K3(销售2部产品2122),因为公式要向右向下复制填充,向右方向填充时要保持列号固定不变,所以要使用相对引用来固定住列号,行号要随着向下填充变化,所以不需固定。第2参数:$A:$F,表示包含查找值的单元格区域,并且第一列必须包含查找值,这里A列是第一列,是构建的辅助列,正好是包含查找值的内容的(销售部门和产品编号),同样因为公式要向右向下填充,要保持查找区域不能随着公式向下填充而发生变化,所以也要固定住。第3参数:COLUMN(D1),这个参数是用于返回哪1列上的值,本案例的目的是要随着公式向右复制,从而依次返回销量、销售额、单价,所以参数是要随着变动的,因为销量在第4列,销售额在第5列,单价在第6列,所以使用函数COLUMN(D1)返回列号4,当公式向右填充时,依次会变成COLUMN(E1)返回列号5,COLUMN(F1)返回列号6,来达到返回对应列号值的目的。第4参数:0,因为是精确匹配,所以该参数为0或FALSE。
我们来对比一下两种方法的优劣势:
数组的优势:不需要构建辅助列,可以直接一条公式完成;劣势是,数据量比较大的时候,处理速度会比较慢,而且对于不懂数组的同学,该公式较为复杂,所以该方法适用于对数组熟悉的同学,且计算量比较小的数据。
借助辅助列的优势是:公式比较简单,容易理解,数据量大的情况下,处理起来也不卡顿,劣势就是需要借助辅助列,才能完成。
以上就是今天要分享的技巧,你学会了吗?若有什么问题,欢迎在下方留言。
学习资料见知识星球。
以上就是今天要分享的技巧,你学会了吗?若有什么问题,欢迎在下方留言。
快来试试吧,小琥 my21ke007。获取 1000个免费 Excel模板福利!
更多技巧, www.excelbook.cn
欢迎 加入 零售创新 知识星球,知识星球主要以数据分析、报告分享、数据工具讨论为主;
1、价值上万元的专业的PPT报告模板。
2、专业案例分析和解读笔记。
3、实用的Excel、Word、PPT技巧。
4、VIP讨论群,共享资源。
5、优惠的会员商品。
6、一次付费只需129元,即可下载本站文章涉及的文件和软件。