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

应用对象
Microsoft 365 专属 Excel

摘要

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

创建示例工作表

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

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

A B C D E
1 姓名 Dept 年数 查找值
2 Henry 501 28 Mary
3 斯坦 201 19
4 Mary 101 22
5 拉里 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 这是你希望结果的左上角单元格引用的列数(左侧或右侧)。 例如,“5”作为Offset_Col参数指定引用中的左上角单元格是引用右侧的五列。 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 或垂直查找函数。 此函数搜索最左侧列中的值,并将其与同一行中指定列中的数据进行匹配。 可以使用 VLOOKUP 在已排序或未排序的表中查找数据。 以下示例使用具有未排序数据的表。

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

    =VLOOKUP (Lookup_Value,Table_Array,Col_Index_Num,Range_Lookup)

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

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

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

有关 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 函数