在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列的其他单元格将得到部门相应的值。

使用VLOOKUP函数

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列的其他单元格将得到部门相应的值。

使用MATCH和INDEX函数

以下公式不仅能获得正确的部门值,还可以填充其他列的值。在单元格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单元格到列表其他单元格将得到相应的值。

更新时间: