分享

你会使用数组来作为VLOOKUP的查询值,一次性查询多个数值吗?

 满泉ca85upjdlw 2018-03-22

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

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

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

你会使用数组来作为VLOOKUP的查询值,一次性查询多个数值吗?

这个例子如果用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完成输入。

你会使用数组来作为VLOOKUP的查询值,一次性查询多个数值吗?

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

你会使用数组来作为VLOOKUP的查询值,一次性查询多个数值吗?

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

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

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

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

你会使用数组来作为VLOOKUP的查询值,一次性查询多个数值吗?

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

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

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

你会使用数组来作为VLOOKUP的查询值,一次性查询多个数值吗?

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

欢迎大家多留言,多交流!

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多