查找函数
在excel中,有几个常用的查找函数可用于在数据范围内查找特定值或条件。
VLOOKUP函数
VLOOKUP函数从一个数据范围中查找某个值,并返回与该值相关联的值。语法如下:
VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup])
lookup_value:要查找的值。table_array:在这个数据范围内查找,包含要查找的值和相关值。col_index_num:返回第几列的值。range_lookup:指定是否进行近似匹配,False为精确查找。
要注意的是,函数将在table_array首列查找。
使用VLOOKUP函数
假设工作表人员列表有如下结构数据:
| 序号 | 名字 | 部门 | 电话号码 | 城市 | 生日 |
|---|---|---|---|---|---|
| 45 | 曹晶 | 销售部 | 13876543210 | 北京 | 1992-04-14 |
| 46 | 陈斌 | 设计部 | 13567890120 | 南京 | 1991-11-14 |
| 49 | 陈佳 | 采购部 | 13579024681 | 南京 | 1997-02-28 |
另外一个工作表info有以下样本数据:
| 序号 | 名字 | 部门 | 电话号码 | 城市 |
|---|---|---|---|---|
| 46 | 陈斌 | |||
| 43 | 陈俊峰 | |||
| 72 | 陈宇 |
两个工作表A1的值都是序号。要从人员列表中把相同序号人员的部门复制到info的部门中,使用VLOOKUP函数。在单元格C2输入:
=VLOOKUP($A2, 人员列表!$A$1:$F$66, 3, FALSE)
- 查找的数据范围要用绝对引用,以便复制单元格时不改变。
- 返回
部门所在列的值,即3。 - 使用精确查找。
把C2复制到C列的其他单元格将得到部门相应的值。

HLOOKUP函数
HLOOKUP函数用于在一个数据范围中查找某个值,并返回与该值相关联的值。语法如下:
HLOOKUP(lookup_value, table_array, row_index_num, [range_lookup])
HLOOKUP函数与VLOOKUP函数的用法基本相同。HLOOKUP函数在table_array数据的首行查找,并返回row_index_num所在行的值。
INDEX函数
INDEX函数用于返回给定范围中指定行和列的单元格的值。语法如下:
INDEX(array, row_num, [column_num])
array:要进行查找的数据范围。row_num:行的索引。column_num:列的索引。如果查找的数据范围只有一列,这个参数可省略。
INDEX(A1:F17, 3, 2):将返回第3行第2列的单元格的值。
MATCH函数
MATCH函数用于在某个数据范围内查找特定值,并返回该值的位置索引。语法如下:
MATCH(lookup_value, lookup_array, [match_type])
lookup_value:要查找的值。lookup_array: 在此数据范围查找。match_type:指定匹配方式,可选。0为精确匹配。
MATCH函数与INDEX函数配合
MATCH函数通常与INDEX函数一起使用,以实现更灵活和动态的查找和返回值操作。例如,可以使用MATCH函数查找某个值所在的行索引,然后将该索引作为INDEX函数的行参数,从而返回该行的值。
还是以上面给出的样本数据为例,要从人员列表中把相同序号人员的部门复制到info的部门中,但这次用的函数是MATCH和INDEX。在单元格C2输入:
=INDEX(人员列表!$C$1:$C$66, MATCH($A2,人员列表!$A$1:$A$66,0))
同样把C2复制到C列的其他单元格将得到部门相应的值。

以下公式不仅能获得正确的部门值,还可以填充其他列的值。在单元格C2输入:
=INDEX(人员列表!$A$1:$F$66, MATCH($A2,人员列表!$A$1:$A$66,0), MATCH(C$1,人员列表!$A$1:$F$1,0))
- 第1个MATCH函数从
序号得到行号。 - 第2个MATCH函数从标题字段得到列号。
复制C2单元格到列表其他单元格将得到相应的值。