工作中,我们可能要根据部门名称来查询该部门下的所有员工姓名(横向查询):

VLOOKUP遇上COUNTIF,数据一对多查询不再是难题!-趣帮office教程网

或者根据不同的部门来列出其各自的信息(纵向查询):

VLOOKUP遇上COUNTIF,数据一对多查询不再是难题!-趣帮office教程网

接下来,我们就来看看如何实现这操作。

(一)横向查询

1、首先,我们需要在数据表前添加一个辅助列,利用COUNTIF函数为各部门编号。

输入公式:

=COUNTIF($C$2:C2,C2)

VLOOKUP遇上COUNTIF,数据一对多查询不再是难题!-趣帮office教程网

第一个参数是计数区域$C$2:C2,我们选择包含部门信息的C列

别忘了用F4键给前面C2加个“锁”。这样你下拉公式时,计数范围就会自动变大,从C2开始,一直到你拉到的那一行,确保每个部门的人数都能数对。

第二个参数是计数条件,这里我们同样选择部门信息所在的单元格C2,

然后,在COUNTIF函数前面连接上部门信息,用&符号连接即可。

输入=C2&COUNTIF($C$2:C2,C2)

VLOOKUP遇上COUNTIF,数据一对多查询不再是难题!-趣帮office教程网

这样,相同的部门就会被编上不同的编号,形成唯一的部门名称

2、编写VLOOKUP函数的查询公式

输入=VLOOKUP(F2&G1,A2:C31,2,0)

将部门名称和部门编号的组合作为VLOOKUP函数的查找值

VLOOKUP遇上COUNTIF,数据一对多查询不再是难题!-趣帮office教程网

然后公式向右拉也要向下拉,所以得注意锁定的事儿:

(1)向右拉的时候,得确保F列被锁定,这样查找的区域才不会变;

(2)向下拉的时候呢,G1单元格里的那个“1”也得锁定,这样查找的行数范围才准确。

(3)再对查找区域:A2:C31进行绝对引用$A$2:$C$31,这样查找的区域就被锁定了。

最终公式变成:

=VLOOKUP($F2&G$1,$A$2:$C$31,2,0)

VLOOKUP遇上COUNTIF,数据一对多查询不再是难题!-趣帮office教程网

3、出现错误值

表格中出现了#N/A ,只需在VlOOKUP函数外面包上一个IFNA函数,即

=IFNA(VLOOKUP($F2&G$1,$A$2:$C$31,2,0),"")

让出现#N/A的单元格里显示空字符串 “”

VLOOKUP遇上COUNTIF,数据一对多查询不再是难题!-趣帮office教程网

(二)纵向查找

1、输入公式:

=VLOOKUP($I$1&$G4,$A$2:$D$31,COLUMN(B2),0)

VLOOKUP遇上COUNTIF,数据一对多查询不再是难题!-趣帮office教程网

(1)第一参数$I$1&$G4:组合I1(部门名)和G4(部门编号)作为查找值。

(2)第二参数$A$2:$D$31:在A2到D31这个固定区域内查找。

(3)第三参数COLUMN(B2):根据公式所在列,动态返回对应列的编号(如B列为2)

因为公式可能会向右拉,所以直接用数字指定返回值所在的列就不方便了。

而COLUMN(B2)会返回2,表示B列是第2列。

如果你把公式向右拉到C列、D列,COLUMN函数就会自动变成COLUMN(C2)、COLUMN(D2),返回3、4,这样返回值就会跟着列的变化而变化了。

(4)第四参数0:表示精确查找。

2、同样出现#NA值,只需嵌套一个IFNA函数即可:

=IFNA(VLOOKUP($I$1&$G4,$A$2:$D$31,COLUMN(B2),0),"")

VLOOKUP遇上COUNTIF,数据一对多查询不再是难题!-趣帮office教程网

3、接下来就可以通过下菜单对部门的选择,就会进行自动筛选了。

VLOOKUP遇上COUNTIF,数据一对多查询不再是难题!-趣帮office教程网

最后呢,为了让我们的表格看起来更整洁、更美观,可以把那个辅助列给藏起来。

这样一来,一个既实用又好看的数据一对多查询表就完成啦!