说起查询引用,99%的亲第一反应肯定是,Lookup、Vlookup、Index+Match等函数或组合函数,很少有人会想到用Dget,对,没错,就是Dget,这个数据库函数不仅可以实现“正向”查询、还可以轻松实现“反向”查询和“条件”查询。
一、Dget函数。
功能:从数据库中提取符合指定条件且唯一存在的记录。
语法结构:=Dget(列表或数据库区域,返回值所在的相对列数或列标题的单元格引用或列标题,查找条件)。
注意事项:
1、如果没有符合条件的记录,将返回#VALUE!。
2、如果符合条件的记录有多条,将返回#NUM! 。
3、第一个参数“列表或数据区域”必须包含列标题。
4、当第二个参数用“列标题”作为返回依据时,必须包含在双引号("")中,如"销量"、"价格"、"销售额"等。
5、可以为参数“查找条件”指定任意区域,只要此区域至少包含一个列标签,并且列标签下方包含至少一个用于指定条件的单元格。
二、Dget函数应用技巧解读。
1、正向(单条件)查询。
目的:根据“工号”查询对应的“销售额”。
方法:
在目标单元格中输入公式:=DGET(B2:G9,"销售额",K2:K3)。
解读:
1、可以使用公式:=DGET(B2:G9,6,K2:K3)来实现上述需求,因为“销售额”在数范围B2:G9中的相对列数为6。
2、可以使用公式:=DGET(B2:G9,G2,K2:K3)来实现上述需求,因为“销售额”就是G2单元格的值。
3、在实际的应用中,使用“列标题”、“列数”还是“单元格地址”引用,完全可以根据自己的爱好来应用。
2、反向查询。
目的:根据“销售员”查询“工号”。
方法:
在目标单元格中输入公式:=DGET(B2:C9,"工号",K2:K3)。
解读:
可以使用公式:=DGET(B2:C9,1,K2:K3)、=DGET(B2:C9,B2,K2:K3)来实现上述需求。
3、多条件查询。
目的:查询“销售员”对相关“产品”的“销售额”。
方法:
在目标单元格中输入公式:=IFERROR(DGET(C2:G9,"销售额",K2:L3),"")。
解读:
可以使用公式=IFERROR(DGET(C2:G9,5,K2:L3),"")、=IFERROR(DGET(C2:G9,G2,K2:L3),"")来实现上述需求。
4、精准查询。
目的:查询“王东”对“CPU”的销售额。
方法:
在目标单元格中输入公式:=DGET(C2:G9,"销售额",K2:L3)。
解读:
1、检查公式,并不存在错误,从返回的代码:#NUM! 倒推原因,存在多条符合条件的记录,Why?这是因为Dget函数默认在“查询条件”的后面带有通配符,条件“CPU”相对于“CPU*”,分析数据源,产品中除了“CPU”之外,还有“CPU-1”,再用Dget函数时,这两个条件是相同的,所以返回#NUM!
2、为了达到“精准”一对一的查询,只需在条件的前面添加等号(=)即可。