查询引用,几乎每天都要用到的技巧,除了普通的筛选之外,还可以使用函数公式,最常用的当属Vlookup函数,如果用好Vlookup函数,可以实现任意条件下的查询,你敢相信吗?
一、效果展示。
从效果图中可以得出,在查询值中不管选择“姓名”还是“部门”,在右侧的区域中都可以显示查询到的信息。敲黑板,查询值中选择的值可以是“姓名”,还可以是“部门”哦。不管选择“姓名”还是“部门”,右侧的区域中都可以显示查询到的信息,如果本部门有多条信息,同时都可以查询到。如何实现了,请继续阅读下文。
二、实现步骤。
1.完善基础信息表。
方法:
1、在源数据表中最左侧查询值的左侧插入辅助列。
2、在辅助列中输入公式:=(C3=K$3) (D3=K$3) B2。
解读:
1、C列、D列分别为“姓名”列和“部门”列,也就是我们要查询的值所在的列;而K列为查询值所在的列。
2、如果查询值等于“姓名”列或者“部门”列的值,则返回1。如果有重复的值,则在上一个值的基础上 B2。
3、B2是相对引用,就是当前计算单元格相对位置的上一行,如果有重复值,在上一行的基础上 1,重复的值形成一个以1开始,逐项 1的序列。敲黑板,B2的相对引用,非常的重要,目的在于给重复的值形成序列。
4、“序号”有什么用了,我们接着往下看。
2、完善查询表。
目的:单击“查询值”下拉列表,选择具体的值,在右侧的查询表区域得到具体的信息。
方法:
1、完善查询值下拉列表。
2、在右侧查询区域中输入公式:=IfERROR(VLOOKUP(ROW(A1),$B:$I,COLUMN(B2),0),"")。
3、单击查询值下拉列表,得到想要的结果。
解读:
1、公式中共涉及到4个函数,分别为Iferror、Vlookup、Row和Column函数;我们重点解读一下Iferror和Vlookup函数。
2、Iferror函数的功能为:检测指定的表达式是否有错误,如果有,则返回指定的值,如果没有错误,则返回表达式本身的值。语法结构为:=Iferror(表达式,表达式错误时的返回值);公式中,判断的是Vlookup函数的返回值,如果Vlookup函数查询不到指定的值,就会返回错误,此时将错误值返回给Iferror,最后由Iferror函数返回指定的值""(空值)。
3、Vlookup函数的功能为:搜索表区域首列满足条件的元素,确定待检索单元格在区域中的行序号,在进一步返回选定单元格的值;语法结构为:=Vlookup(查询值,数据范围,返回值的相对列数,匹配模式),匹配模式有2种,分别为0和1,0为精准匹配,1为模糊匹配。
4、公式中,Vlookup的查询值为Row(a1),也就是查询值为1、2、3……依次递增的数列,我们在“完善基础信息表”中插入的辅助列,生成的值就是为了给Vlookup函数作为参数使用;数据范围为$B:$I,即B列到I列,观察数据源,B列到I列正好为辅助列到备注列,我们所需要的信息正好是C列到I列,但B列最为查询值所在列,所以B列也应该再数据范围中;返回值的相对列数为COLUMN(B2),即动态获取每列的列数,“姓名”在数据源的第2列,而COLUMN(B2)的返回值正好为2,到达目的,向右填充时,依次返回第3、4、5、6、7、8列的值;匹配模式为0,也就是精准查询。
5、公式中,查询值、返回值所在的列数都是动态获取,同时要注意相对引用和绝对引用的使用,只有同时掌握好这些知识点,对公式才能轻松驾驭哦!