Excel高级技巧 VLOOKUP一次查询多个值 第一参数传入数组的高级套路

2019年10月17日14:20:53 评论 218 views

利用内存数组作为VLOOKUP查询条件来一次性查询多条EXCEL数据

VLOOKUP是EXCEL中经常要用到的查询函数,通过情况下该函数的第1参数都是1个常数值,能不能用内存数组来作为VLOOKUP的第1参数,实现一次性查询多个值的需求呢?本文通过案例对此提出一个解决办法,欢迎大家讨论。

先举例如下,下图是部分员工工资奖金信息,要求对右边人员一次性查询出相关数据。

这个例子如果用VLOOKUP的标准用法是很容易实现的:

=VLOOKUP(I3,C:F,4,0),再将公式向下填充即可。

本次我们不使用VLOOKUP的标准用法,不向下填充公式,而是使用数组公式来一次性查询出所有的值。

选中J3:J7,输入数组公式:

=VLOOKUP(T(IF({1},I3:I7)),$C$3:$F$10,4,0),按CTRL + SHIFT + ENTER完成输入。

这个公式的核心是IF({1},I3:I7),这个IF函数的结果有3个值,{1}将I3:I7这个区域变成了数组,IF({1},I3:I7)的结果是{'林冲';'吴用';'孙二娘';'宋清';'宋江'},相当于在内存中形成如下一个数组:

然后VLOOKUP再以这个数组中的每一行为查询值在C3:F10的范围中进行查找。

T函数是用来返回IF函数结果中的文本值。

对上面的例子稍加变动,可以用来求值,比如直接计算右边5人的工资总和:

=SUM(VLOOKUP(T(IF({1},I3:I7)),$C$3:$F$10,4,0)),按CTRL + SHIFT + ENTER完成输入。

这个例子就是把原来的VLOOKUP函数外面加了一层SUM函数,就可以直接对所有的查询结果求和。

上面的VLOOKUP函数中如果不使用IF形式,直接在数组公式中使用区域作为第1参数,也能得到相应的结果:

=VLOOKUP(I3:I7,C3:F10,4,0)

数组公式确实是EXCEL中的一大利器,使用好了能给我们的工作带来很多便利。

  • 微信扫码免费学习
  • 免费学习48小时
  • weinxin
  • 我的微信公众号
  • EXCEL880
  • weinxin

发表评论

您必须才能发表评论!