搜索

影视聚合站

查询符合条件的多个结果,VLOOKUP也行

发布时间:2020-08-31 13:22:01来源:Excel之家ExcelHome

小伙伴们好啊,今天老祝和大家来说说VLOOKUP的高能用法,看看这位大众情人还藏着多少不为人知的秘密。

函数的语法为:

VLOOKUP(要找谁,在哪儿找,返回第几列的内容,精确找还是近似找)

如下图,需要从B~D的数据表中,根据G1单元格的部门,查询该部门所有的姓名。

首先在A2单元格输入以下公式,向下复制:

=(B2=$G$1)+A1

然后在G5单元格输入以下公式,向下复制:

=IFERROR(VLOOKUP(ROW(A1),A:C,3,0),"")

简单说一下公式的意思:

1、B列的部门每重复出现一次,A列的序号增加1。

2、VLOOKUP函数使用ROW(A1)得到1至N的递增序列作为查询值,在A:C列这个查询区域中,依次返回与递增序号相对应的C列的姓名。

由于VLOOKUP在有多个匹配结果时,默认返回第一条记录,所以只会返回A列中各个序号首次出现的记录。

3、注意查找区域必须由辅助列A列开始。

4、最后将辅助列字体设置为白色或进行隐藏即可。

说完了垂直方向的一对多查询,接下来咱们再说说水平方向的一对多查询。

如下图所示,是多个部门的员工信息。

现在,咱们要按部门提取出对应的姓名。

首先插入辅助列(最后可隐藏)

单击A列的列标,然后右键→插入,插入一个空白列。

在A2单元格输入公式,向下复制。

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

COUNTIF函数第一参数使用动态扩展的范围$B$1:B2,当公式向下复制时,会依次变成$B$1:B3、$B$1:B4……,也就是自B1单元格开始到公式所在行这个范围内,统计B列部门出现的次数。

再使用&符号,将B列的部门与出现的次数连接,就是相当于给部门加上唯一的标记了。

接下来在H2单元格中输入公式:

=IFERROR(VLOOKUP($G2&COLUMN(A1),$A:$E,3,0),"")

接下来,咱们说说公式的运算过程:

1、COLUMN(A1)部分,返回A1的列号1。当公式向右复制时,参数A1会变成B1、C1……,COLUMN函数的结果就是1、2、3、……

2、用$G2&COLUMN(A1)作为VLOOKUP函数的查询值,相当于给G2的部门加上了序号信息,公式在H2单元格中查询的是“安监部1”,在I2单元格中,查询的就是“安监部2”,在J2单元格中,查询的就是“安监部3”了。

3、VLOOKUP函数使用带序号的部门作为查询值,与刚刚在A列使用公式得到的辅助信息相对应,最终在$A:$E这个整列引用的范围中,返回第3列的姓名信息。

4、当VLOOKUP函数查找不到对应的内容时,会返回错误值,所以咱们再使用IFERROR函数进行除错,如果VLOOKUP函数找不到姓名了,就让他返回一个空文本。

今天的练手文件:

https://pan.baidu.com/s/18Z5uuDAwNg2e0t0W1cCwog

好了,今天的内容这些吧,祝各位小伙伴一周快乐,如意康宁,白天精神,晚上文明。谁要不服,盘他!

图文制作:祝洪忠