小伙伴们好啊,今天老祝和大家来说说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
好了,今天的内容 这些吧,祝各位小伙伴一周快乐,如意康宁,白天精神,晚上文明。谁要不服,盘他!