- excel提供LOOKUP查询函数自动找出指定某个数据的相关资料并填在指定的地方,在进行数据查找时非常有用。
查询函数就是:我们有一个值,在另一个位置(区域)找到该值的匹配值,然后显示驻留在对应于该匹配值的行或列的字词或数字到函数所在单元格。结合后面的例子将更易理解。
两个基本查询函数:VLOOKUP 和 HLOOKUP,在函数名中,V 代表着纵向,而 H 代表着横向。
- VLOOKUP:在表格数组的首列查找值,并由此返回表格数组当前行中其他列的值。VLOOKUP 中的 V 表示垂直方向。当比较值位于需要查找的数据左边的一列时,可以使用 VLOOKUP,而不用 HLOOKUP。
- <语法>
VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)
Lookup_value:为需要在表格数组 (数组:用于建立可生成多个结果或可对在行和列中排列的一组参数进行运算的单个公式。数组区域共用一个公式;数组常量是用作参数的一组常量。)第一列中查找的数值。Lookup_value 可以为数值或引用。若 lookup_value 小于
table_array:第一列中的最小值,VLOOKUP 将返回错误值 #N/A。
Table_array:为两列或多列数据。请使用对区域的引用或区域名称。table_array 第一列中的值是由 lookup_value 搜索的值。这些值可以是文本、数字或逻辑值。不区分大小写。
Col_index_num:为table_array 中待返回的匹配值的列序号。
Col_index_num 为 1 时,返回 table_array 第一列中的数值;
Col_index_num 为 2时,返回 table_array 第二列中的数值,以此类推。如果 col_index_num :
- 小于1,VLOOKUP 返回错误值 #VALUE!。
- 大于table_array 的列数,VLOOKUP 返回错误值 #REF!。
Range_lookup:为逻辑值,指定希望 VLOOKUP 查找精确的匹配值还是近似匹配值:
- 如果为 TRUE 或省略,则返回精确匹配值或近似匹配值。也就是说,如果找不到精确匹配值,则返回小于 lookup_value 的最大数值。
table_array 第一列中的值必须以升序排序;否则 VLOOKUP 可能无法返回正确的值。可以选择“数据”菜单上的“排序”命令,再选择“递增”,将这些值按升序排序。
- 如果为 FALSE,VLOOKUP 将只寻找精确匹配值。在此情况下,table_array 第一列的值不需要排序。如果 table_array 第一列中有两个或多个值与 lookup_value 匹配,则使用第一个找到的值。如果找不到精确匹配值,则返回错误值 #N/A。
-
<说明>
1.在 table_array 第一列中搜索文本值时,请确保 table_array 第一列中的数据没有前导空格、尾随空格、不一致的直引号(' 或 ")、弯引号(‘或“)或非打印字符。在上述情况下,VLOOKUP 可能返回不正确或意外的值。
2.在搜索数字或日期值时,请确保 table_array 第一列中的数据未保存为文本值。否则,VLOOKUP 可能返回不正确或意外的值。
3.如果 range_lookup 为 FALSE 且 lookup_value 为文本,则可以在 lookup_value 中使用通配符、问号 (?) 和星号 (*)。问号匹配 任意单个字符;星号匹配任意字符序列。如果您要查找实际的问号或星号本身,请在该字符前键入波形符 (~)。
注意事项:
- 如果希望该函数返回完全匹配项,则必须按照升序对表格数组中的值排序;否则,该函数将失败。
- 该函数从您定义的单元格区域的左上部开始搜索,而且它搜索起点右侧的列。
- 必须始终用逗号分隔参数。
- <例子>
例1:如下图,在原始数据中查询每种水果的库存量填写在对应列。
说明:
1.选中E3列,鼠标放置单元格右下角出现十字光标,拖拉至E6单元格,自动填充单元格。
2.VLOOKUP(D3,$A$3:$B$6,2,FALSE)中,D3相对引用,$表示绝对引用,自动填充后比如E4为=VLOOKUP(D4,$A$3:$B$6,2,FALSE)。
3.#N/A表示查无此值。
4.其中D3也可为数值,比如“apple”。也可在单元格书写函数,比如将E3写作:=IF(ISNA(VLOOKUP(D3,$A$3:$B$6,2,FALSE)),"无存货",VLOOKUP(D3,$A$3:$B$6,2,FALSE)),则查询结果为:
2.HLOOKUP:与vlookup类似,不同在于它是比较数据表(区域)的首行而不是首列,并且要查找厦门给定行中的数据,返回表格或数组当前列中指定行处的值。
如下例题:
说明:
A15单元格=HLOOKUP("Axles",A10:C13,2,TRUE);
A16单元格=HLOOKUP("Bearings",A10:C13,3,FALSE);
A17单元格=HLOOKUP(3,{1,2,3;"a","b","c";"d","e","f"},2,TRUE);——也可从数组中查找。
参考资料:
1.EXCEL帮助文件
2.http://office.microsoft.com/zh-cn/excel-help/HA001056320.aspx?pid=CH001085946&CTT=1&origin=EC001022986
3.http://www.officexy.com/Articles/Excel/ExcelTeach/20061121160916159_2.htm