Excel怎么双重VLOOKUP

条件:A表 spid= B表 spid and A表pc=B表pc
则 B表“rv列” 取A表“sl列”对应的值
求公式

1.建立实例数据,分为两部分:基础数据和结果数据;

2.在G2单元格输入数组公式:{=VLOOKUP(E2&F2,IF({1,0},A1:A100&B1:B100,C1:C100),2,FALSE)},其中“{}”不能使用手工输入,在输入公式其它部分后同时按下Ctrl+Shift+Enter即可输入;

3.验证查询引用结果:110,实例完毕。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-02-06

我没有用Vlookup来做,用了SUMPRODUCT函数


如图,这了方便表示,两表spid和PC数据一样……


这是表1


这是表2


在rv列,D2中输入      =SUMPRODUCT((A2=Sheet1!A2)*(Sheet1!B2=Sheet2!B2)*Sheet1!C2)


然后下拉


SUMPRODUCT本身就用于多条件查询或求和函数……

第2个回答  2021-04-19
如果查找区域中有多个查找对象,用VLOOKUP函数查找时,只返回该列中自上而下第一个查找对象所对应的值。

如下图,我们要查找“总经办”有哪几个人员?

如果直接用VLOOKUP进行查找,返回的结果为“高磊”,它是“姓名”列中自上而下的第一个结果,向下拖动公式返回的是同一个结果。

那么我们要查找某个部门有哪几位员工应该如何操作呢?作为熟练掌握EXCEL的人员来说,能想到多个方法。今天我们来讲的是用VLOOKUP函数实现一对多查找,这个不仅仅是VLOOKUP函数的一种用法,更是在解题过程中可以学到一些解题思路,对其它问题的解决也有帮助。

思考:
用VLOOKUP查找时,只返回自上而下第1个值的内容,那么我们是不是可以把部门名称都变为唯一值,这样VLOOKUP查找时,可以返回每个唯一值所对应的值呢?

再来考虑一下,我们在F3单元格输入公式后向下拖动,行号是递增1的,那么是不是就可以把部门名称改为“总经办1、总经办2……”,这样依次对应第1个、第2个……出现的姓名呢?

生成唯一值
我们用这种试一下,要显示某个人名在部门中是第几次出现,可以用COUNTIF来解决。

在“部门”列前面插入一个辅助列,在A2单元格中输入公式:

=COUNTIF($B$2:B2,B2)

双击向下填充。

我们会发现,同一个部门每出现一个姓名,对应的辅助列单元格中数字序号就加1,这样我们和部门名称用文本连接符“&”连接起来后,就会形成唯一值。

把A2单元格公式修改为:

=B2&COUNTIF($B$2:B2,B2)

双击向下填充公式。

生成一对多查找公式
唯一值生成了,我们可以把查找公式修改一下:

=VLOOKUP($F$3&ROW(A1),$A$1:$C$9,3,0)

双击向下填充。

ROW(A1)是返回A1单元格所在的行号(1),向下拖动的话,依次变为ROW(A2)、ROW(A3)……,形成数字序列1、2、3……,总经办和数字序列连接后,变成“总经办1、总经办2、总经办3……”,这样通过查找A列的值,来返回姓名列的姓名。

将错误值返回空值
因为我们不能确定某个部门有多少人,所以需要把公式尽量向下拖动,直到返回错误值为止,是一但更换查找部门,可能还会出现更多的错误值。

我们通过IFERROR让错误值返回空值:

=IFERROR(VLOOKUP($F$3&ROW(A1),$A$1:$C$9,3,0),"")

双击向下填充。

这样就可以用VLOOKUP实现一对多查找,我们可以把F3单元格设置为下拉菜单,选择不同部门时,返回这个部门所有人员姓名。
第3个回答  推荐于2017-09-01
假设A表为SHEET1,B表D2公式:
=VLOOKUP(A2&B2,IF({1,0},sheet1!A:A&sheet1!B:B,sheet1!C:C),2,0)
数组公式,按CTRL+SHIFT+ENTER完成公式,下拉。本回答被提问者采纳
第4个回答  2014-02-06
在B表的D2单元格输入公式,下拉
=VLOOKUP(A2&B2,IF({1,0},Sheet1!$A$1:$A$65535&Sheet1!$B$1:$B$65535,Sheet1!$C$1:$C$65535),2,0)
输入完公式按下CTRL+SHIFT+ENTER三键
sheet1为A表。
相似回答