查找函数
在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
单元格到列表其他单元格将得到相应的值。