linqto 多个关键字模糊查询
在Excel中,有一类函数被称为查找和引用函数,今天,小编给大家分享6个查询函数(Choose、Lookup、Hlookup、Vlookup、Match、Index)的应用技巧,可以收藏备用哦!
一、Choose。
功能:根据序号从列表中选择对应的内容。
语法结构:=Choose(序列号,值1,[值2]……[值254])。
注意事项:
1、参数“序列号”如果小于1或者大于列表中的最后一个值的序号,Choose函数将返回错误值“#VALUE!”。
2、参数“序列号”的值为1时,返回“值1”,“序列号”的值为2时,返回“值2”……以此类推。
3、参数“序列号”如果为小数,则在使用前将被截尾取整。
4、参数“值X”可以是数字、文本、引用、名称、公式或者函数。
目的:评定员工的业绩,如果≤1000,则为“一般”,如果≥3500,则为“优秀”,中间部分为“良好”。
方法:
在目标单元格中输入公式:=CHOOSE(IF(G3<1000,1,IF(G3>3500,3,2)),'一般','良好','优秀')。
解读:
公式中,IF函数的作用为根据G3单元格的值返回对应的序号1、2、3,并作为Choose函数的“序列号”,根据序列号返回“一般”、“良好”、“优秀”。
二、Lookup。
功能:返回指定的行或列中特定位置上的值。
Lookup有向量和数组两种应用形式。
(一)向量形式。
语法结构:=Lookup(查询值,查询值所在的区域或数组,[返回值所在的区域或数组])。
注意事项:
1、参数“查询值”,如果在“查询值所在的区域或数组”中找不到改制,则返回由小于等于查询值的最大值对应的结果。
2、为了能够得到正确的查询结果,“查询值所在的区域或数组”在查询开始前必须按照【升序】排列,规则为:数字<字母<FALSE<TRUE。
3、“查询值”、“返回值”所在的区域和数组必须是同方向的,即如果查询区域为行方向,则返回结果的区域就不能是列方向上的。
4、当“查询值所在的区域或数组”和“返回值所在的区域或数组”相同时,可以省略“返回值所在的区域或数组”。
目的:查询“员工”的“销售额”。
方法:
1、以“员工姓名”为主要关键字对数据源进行升序排序。
2、在目标单元格中输入公式:=LOOKUP(J3,B3:B12,G3:G12)。
解读:
在使用Lookup函数查询数据时,前提条件是对“查询值所在的区域或数组”进行【升序】排序,否则无法得到正确的结果。
(二)数组形式。
语法结构:=Lookup(查询值,数据区域)。
注意事项:
1、参数“数据区域”必须包含“查询值”和“返回值”,且“查询值”为第一列(行),“返回值”为末尾列(行)。
2、查询前,必须对“数据区域”中的值以“查询值”所在的列为主要关键字进行升序排序,规则为:数字<字母<FALSE<TRUE。
目的:查询“员工”的“销售额”。
方法:
1、以“员工姓名”为主要关键字对数据源进行升序排序。
2、在目标单元格中输入公式:=LOOKUP(J3,B3:G12)。
(三)经典用法。
目的:查询“员工”的“销售额”。
方法:
在目标单元格中输入公式:=LOOKUP(1,0/(B3:B12=J3),G3:G12)。
解读:
使用此方法时,无需对数据源进行升序排序,其本质仍然为向量形式。
三、Hlookup。
功能:在区域或数组的首行查找数据,返回与指定值同列的该区域或数组中的其行的值。
语法结构:=Hlookup(查询值,数据区域,返回值的相对行数,[匹配类型])。
注意事项:
1、“数据区域”必须包含列标题。
2、参数“匹配类型”分为两种,TRUE或省略为模糊查询,FALSE为精准查询。
3、模糊查询时,返回≤“查询值”的最大值,且“查询区域”必须按升序排序;精准查询时,返回等于“查询区域”中第一个与“查询值”相等的值,“查询区域”无需排序。
目的:查询“员工”的“销售额”。
方法:
在目标单元格中输入公式:=HLOOKUP(J3,B2:G12,MATCH(K2,B2:B12,0),0)。
解读:
Match函数的作用和用法请查阅本文后续内容。
四、Vlookup。
功能:在区域或数组的首列查找指定的值,返回与指定值同行的该区域或数组中其他列的值。
语法结构:=Vlookup(查询值,数据区域,返回值所在的列数,[匹配类型])。
注意事项:
1、参数“匹配类型”分为两种,TRUE或省略为模糊查询,FALSE为精准查询。
2、模糊查询时,返回≤“查询值”的最大值,且“查询区域”必须按升序排序;精准查询时,返回等于“查询区域”中第一个与“查询值”相等的值,“查询区域”无需排序。
目的:查询“员工”的“销售额”。
方法:
在目标单元格中输入公式:=VLOOKUP(J3,B3:G12,6,0)。
解读:
参数“6”代表的是返回值“销售额”在范围B3:G12中的相对列数。
五、Match。
功能:返回在指定方式(精准查询或模糊查询)下要查找的值在区域或数组中的位置。
语法结构:=Match(查询值,数据区域,[匹配类型])。
注意事项:
1、参数“匹配类型”分为3种,“1或省略”,模糊查询,返回小于等于“查询值”的最大值的位置,“数据区域”必须按【升序】排序;“0”为精准查询,返回数据区域中的第一个与“查询值”相等位置的值,“数据区域”无需排序;“-1”为模糊查询,返回大于等于“查询值”的最小值的位置,“数据区域”必须按降序排序。
2、如果参数为文本,Match函数将不区分大小写字母,如果要严格匹配“查询值”,则需要使用Exact函数。
目的:返回“销售员”在指定范围中的相对位置。
方法:
在目标单元格中输入公式:=MATCH(J3,B3:B12,0)。
解读:
“数据区域”不同,相对位置也不同。
六、Index。
功能:返回单元格区域或数组中行列交叉位置上的值。
语法结构:=Index(数据范围,行数,[列数])。
注意事项:
1、参数“行数”和“列数”只能省略其一,不能同时省略。
2、参数“行数”、“列数”表示的引用必须位于“数据范围”内,否则Index函数将返回错误值“#REF!” 。
目的:查询“员工”的“销售额”。
方法:
在目标单元格中输入公式:=INDEX(G3:G12,MATCH(J3,B3:B12,0))。
解读:
用Match函数定位员工姓名在对应列中的相对位置,并作为Index函数的参数,返回该位置上的销售额。