使用 Excel 内置函数在表格或单元格区域中查找数据

应用对象
Microsoft 365 专属 Excel

摘要

本文分步介绍如何使用 Microsoft Excel 中的各种内置函数在表 (或单元格区域) 查找数据。 可使用不同的公式获得相同的结果。

创建示例工作表

本文使用示例工作表来说明 Excel 内置函数。 考虑从列 A 中引用姓名并从列 C 返回该人的年龄的示例。若要创建此工作表,请在空白 Excel 工作表中输入以下数据。

将在单元格 E2 中键入要查找的值。 你可以在同一工作表的任何空白单元格中键入公式。

  A B C D E  
1 姓名 Dept 年数 查找值
2 Henry 501 28 Mary
3 Stan 201 19
4 Mary 101 22
5 Larry 301 29

术语定义

本文使用以下术语来描述 Excel 内置函数:

术语 定义 示例
表数组 整个查找表 A2:C5
Lookup_Value 要在 Table_Array 的第一列中找到的值。 E2
Lookup_Array
-或者-
Lookup_Vector
包含可能的查阅值的单元格区域。 A2:A5
Col_Index_Num 应返回匹配值Table_Array列号。 3 (Table_Array) 中的第三列
Result_Array
-或者-
Result_Vector
只包含一行或一列的区域。 其大小必须与 Lookup_Array 或 Lookup_Vector 相同。 C2:C5
Range_Lookup 逻辑值 (TRUE 或 FALSE) 。 如果为 TRUE 或省略,则返回近似匹配值。 如果为 FALSE,则查找完全匹配项。 FALSE
Top_cell 这是要基于偏移量的参考。 Top_Cell必须引用一个单元格或相邻单元格区域。 否则,OFFSET 返回 #VALUE! 错误值。
Offset_Col 这是您希望结果的左上角单元格引用左侧或右侧的列数。 例如,作为Offset_Col参数的“5”指定引用中左上角的单元格位于引用右侧的五列处。 Offset_Col可以是正 (,表示在起始参考) 的右侧,也可以是负 (,表示在起始参考) 的左侧。

函数

LOOKUP ()

LOOKUP 函数在单行或单列中查找值,并将其与另一行或列中相同位置的值进行匹配。

下面是 LOOKUP 公式语法的示例:

    =LOOKUP (Lookup_Value,Lookup_Vector,Result_Vector)

以下公式在示例工作表中查找 Mary 的年龄:

    =LOOKUP (E2,A2:A5,C2:C5)

公式使用单元格 E2 中的值“Mary”,并在列 A) (查找向量中找到“Mary”。 然后,公式匹配结果向量 (列 C) 中同一行中的值。 因为“Mary”在第 4 行,所以 LOOKUP 返回第 C 列第 4 行 (第 22) 的值。

注意:LOOKUP 函数要求对表格进行排序。

有关 LOOKUP 函数的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
 

如何在 Excel 中使用 LOOKUP 函数

VLOOKUP ()

数据以列的形式列出时使用 VLOOKUP 或 Vertical Lookup 函数。 此函数在最左侧列中搜索值,并将其与同一行中指定列中的数据进行匹配。 可以使用 VLOOKUP 在排序或未排序的表中查找数据。 以下示例使用包含未排序数据的表。

下面是 VLOOKUP 公式语法的示例:

    =VLOOKUP (Lookup_Value,Table_Array,Col_Index_Num,Range_Lookup)

以下公式在示例工作表中查找 Mary 的年龄:

    =VLOOKUP (E2,A2:C5,3,FALSE)

该公式使用单元格 E2 中的值“Mary”,并在列 A) 的最左 (列中找到“Mary”。 然后,公式将匹配 Column_Index 中同一行中的值。 此示例使用“3”作为Column_Index (列 C) 。 因为“Mary”在第 4 行,所以 VLOOKUP 返回 C 列中第 4 行的值 (22) 。

有关 VLOOKUP 函数的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
 

如何使用 VLOOKUP 或 HLOOKUP 查找完全匹配项

INDEX () 和 MATCH ()

可以同时使用 INDEX 和 MATCH 函数来获得与使用 LOOKUPVLOOKUP 相同的结果。

下面是结合使用 INDEXMATCH 以生成与前面示例中的 LOOKUPVLOOKUP 相同的结果的语法示例:

    =INDEX (Table_Array,MATCH (Lookup_Value,Lookup_Array,0) ,Col_Index_Num)

以下公式在示例工作表中查找 Mary 的年龄:

=INDEX (A2:C5,MATCH (E2,A2:A5,0) ,3)

公式使用单元格 E2 中的值“Mary”,并在 A 列中找到“Mary”。然后,它匹配 C 列中同一行中的值。因为“Mary”位于第 4 行,所以公式返回 C 列第 4 行 (22) 的值。

注意: 如果Lookup_Array中的单元格均不与 Lookup_Value (“Mary”) 匹配,则此公式将返回 #N/A。
有关 INDEX 函数的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:

如何使用 INDEX 函数查找表中的数据

OFFSET () 和 MATCH ()

可以一起使用 OFFSETMATCH 函数来生成与上一示例中的函数相同的结果。

下面是结合使用 OFFSET 和 MATCH 以生成与 LOOKUPVLOOKUP 相同的结果的语法示例:

    =OFFSET (top_cell,MATCH (Lookup_Value,Lookup_Array,0) ,Offset_Col)

以下公式在示例工作表中查找 Mary 的年龄:

    =OFFSET (A1,MATCH (E2,A2:A5,0) ,2)

公式使用单元格 E2 中的值“Mary”,并在 A 列中找到“Mary”。然后,公式匹配同一行中的值,但匹配列 C) 右侧两列 (。 因为“Mary”在 A 列中,所以公式返回 C 列第 4 行中的值 (22) 。

有关 OFFSET 函数的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
 

如何使用 OFFSET 函数