Excel match 函数

2025年3月17日 | 阅读 8 分钟

MATCH 函数是 Excel 的内置函数,它允许用户查找查找值在行、列或表格中的位置。您也可以这样理解它——MATCH 函数搜索单元格范围内的一个指定项,并将其位置返回给用户。

例如, Excel 列包含四个值,分别为 34、12、53、29,分别位于 A1:A4。要查找 53 在 A1:A4 范围内的位置,MATCH 公式将是 -

=MATCH(53, A1:A4, 0)

在指定的范围内找到 53 后,它将返回 3,这意味着 53 是该范围内的第三个项目。

注意:MATCH() 函数支持精确匹配、近似匹配以及通配符(\*,?)匹配。

MATCH() 函数是 LOOKUP 函数的替代函数。当您需要查找项在范围内的位置(范围:由用户指定)而不是该项本身时,请始终使用 MATCH 函数。

语法和参数

以下是 MATCH 函数的语法和参数值 -

=MATCH(查找值, 查找范围, 匹配类型)

"MATCH() 函数不区分大小写,所以 Happy HAPPY 对它来说是一样的。 "

查找值 (必需)

查找值参数包含要在 Excel 工作表中的指定单元格范围内搜索的值。此参数是必需参数,这意味着必须在此参数中传递值。它可以接受数字、文本或逻辑值。

例如,您正在通过使用人的姓名作为查找值来查找某人的出生日期。因此,出生日期是您想要的值。

注意:文本值必须用双引号 ("") 括起来。

查找范围 (必需)

查找范围是一个参数,其中包含将在其中搜索查找值的范围。例如,范围将指定为 A1:A10。这是您将要查找匹配值的范围。

匹配类型 (可选)

与前两个参数不同,这是一个可选参数,接受数值。数字可以是 1、0 或 -1,此参数的默认值为 1。

  • 1 表示精确匹配或下一个最小匹配
  • 0 表示精确匹配
  • -1 表示精确匹配或下一个最大匹配

此参数指定 Excel 如何搜索查找值在查找范围数组参数中的位置。

返回值

  • MATCH() 函数在指定单元格范围内找到该值时返回其位置。
  • 如果 MATCH() 函数找不到指定值,它将返回 #N/A 错误。

重要提示

以下是 MATCH() 函数需要注意的一些重要提示

  • MATCH() 函数返回搜索元素的**位置**。请记住,不是值本身。
  • 如果 MATCH() 函数在指定范围内找不到该值,它将返回 #N/A 错误代码。
  • 如果您正在搜索文本数据,请将值放在双引号中作为查找值。例如,范围 A2:A15 中的 "Bluetooth"。
  • 在匹配文本值时,MATCH() 函数会查找精确的拼写来找到匹配项。它不区分大小写,因此无法区分大写字母和小写字母。
  • 此函数从您在函数中提供的范围开始计算指定项的位置,而不是从 A1 单元格开始。因此,如果您更改范围,返回的位置也会改变。
  • 如果 **查找值** 是一个文本字符串,并且您还将第三个参数 **匹配类型** 的值设置为 0。您也可以在其中使用通配符。
    • ? (问号)匹配文本字符串中的任何单个字符。
    • * (星号)匹配文本字符串中的模式或字符序列。
    • ~ (波浪号运算符)是一个特殊运算符,位于要查找的实际问号 (?) 或星号 (*) 字符之前。

现在,让我们通过不同的示例来更好地理解这个函数。

如何在 Excel 中使用 MATCH() 函数?

为了理解 MATCH() 函数的工作原理以及它如何与不同的参数值协同工作,我们讨论了以下几个示例。

当 Excel 中的数据集很大而我们想从中查找内容时,它很有帮助。您可以使用 MATCH() 函数中的特定单词来查找位置。如果该值存在于 Excel 工作表中,MATCH() 将返回其位置。

然后,您可以直接找到它并查看完整信息。这可以节省用户搜索数据的时间。

注意:请记住,此函数从您在函数中定义的范围开始计算指定项的位置,而不是从 A1 单元格开始。因此,如果您更改范围,它返回的位置也会改变。

精确匹配示例

首先,我们将讨论两个关于字符串数据精确匹配的示例。请看下面的示例

示例 1:查找字符串数据

假设我们有以下产品数据,我们将从中查找 Boat Earphone 的位置。

Excel match function

请看以下如何完成的步骤

步骤 1:选择一个单元格来存储返回的结果,并在公式栏中输入以下公式。

=MATCH("Boat Earphones",A2:A20,0)

这里 **Boat Earphones** 是要在 **A2 到 A20** 范围内搜索的查找值,而 **0** 用于精确匹配。

Excel match function

步骤 2:按 Enter 键,如果关键字存在,将返回搜索关键字的位置。

找到查找值时的结果

步骤 3:查看 MATCH() 函数在 Excel 文件中找到 **Boat earphones** 后返回的位置。

Excel match function

未找到查找值时的结果

现在,我们将查找一个 Excel 表中不存在的值。例如,在 A1 到 A10 范围内查找 "handset"。

Excel match function

步骤 4:如果查找值在目标单元格范围内未找到,它将不返回任何位置。它将在单元格中返回 #N/A 错误,如下面的屏幕截图所示。

Excel match function

示例 2:查找行星的位置

让我们来看一个搜索行星位置的简单示例。我们有一个行星列表,您可以使用 MATCH() 函数从中查找特定行星的位置。

我们需要查找精确匹配,而不是近似值。因此,我们将使用 0 作为精确匹配的第三个参数值。

Excel match function

步骤 2:将以下 MATCH() 公式复制并粘贴到您的 Excel 公式栏中。

=MATCH("Saturn",A25:A35,0)

这里 **Saturn** 是要在 **A25 到 A35** 范围内搜索的查找值,而 **0** 用于精确匹配。

Excel match function

步骤 3:现在,单击键盘上的 **Enter** 键,然后查看 MATCH() 函数在找到 Saturn 的精确匹配后返回的位置。

Excel match function

返回的值是 **6**,这意味着 Saturn 是列表中的第六颗行星。

近似匹配

现在,使用以下示例,我们将查找精确或近似匹配。因此,您将看到 MATCH() 函数如何通过近似匹配来查找位置。

有两种方法:一种是下一个最小匹配,另一种是下一个最大匹配。为这两种方法各举一个例子。

示例 1:下一个最小匹配

现在,我们将通过在 MATCH() 函数的第三个参数中使用 1(表示下一个最小匹配)来演示一个近似匹配的示例。在此示例中,我们将使用数值数据集。

我们在 Excel 工作表中拥有这个数值数据集。

Excel match function

我们将使用 MATCH() 函数从 Data 列查找精确值和近似值。请按照以下步骤操作

步骤 1:我们正在查找 4349 或近似值在可用数据中。

Excel match function

步骤 2:在 Excel 工作表的公式栏中使用以下公式,然后通过单击 **Enter** 键获取结果。

=MATCH(4349,B38:B50,1)

Excel match function

步骤 3:请注意,MATCH() 函数在指定范围内返回了 4 的位置。值 4349 不在指定范围内;它最接近 4000。因此,它返回了近似值的位置,即 4。

Excel match function

这是查找精确值或下一个最大近似值位置的示例。

示例 2:下一个最大匹配

现在,我们将通过在 MATCH() 函数的第三个参数中提供 -1(表示下一个最大匹配)来演示一个近似匹配的示例。对于这个例子,我们将使用与上一个示例相同的数据集。

我们在 Excel 工作表中拥有这个数值数据集。

Excel match function

我们将使用 MATCH() 函数从 Data 列查找精确值以及下一个最大的近似值。请按照以下步骤操作

步骤 1:我们正在查找相同的值 4349,并在可用数据中查找其精确或近似匹配。

Excel match function

步骤 2:在 Excel 工作表的公式栏中使用以下公式,然后通过单击 **Enter** 键获取结果。

=MATCH(4349,B38:B50,-1)

Excel match function

步骤 3:请注意,MATCH() 函数在指定范围内返回了 5 的位置。值 4349 不在指定范围内;它是 5000 的下一个最大值。因此,它返回了近似值的位置,即 5。

Excel match function

这是查找精确值或下一个最大近似值位置的示例。

示例 3:通配符匹配

Excel 允许用户使用 MATCH() 函数对数据执行通配符匹配。您可以在 Excel 中执行两个通配符操作:一个使用星号 (*) 和问号 (?) 运算符。我们将通过 MATCH() 函数的示例来演示通配符匹配。

我们在 Excel 工作表中拥有这个数据集,我们将对其进行数据通配符匹配。

Excel match function

使用问号 (?) 运算符

我们将使用 MATCH() 函数中的文本字符串和一个问号 (?) 符号来查找模式。例如,Spe??er。MATCH() 函数将查找包含与该词类似(如 Speaker)的文本。

步骤 1:选择一个单元格来存储结果,并输入以下 MATCH() 公式。它将在 Product 列中查找具有 P?ndrive 的匹配项。

=MATCH("P?ndrive",A1:A15,0)

Excel match function

它将返回 Product 列中找到的第一个匹配项的位置。请记住,问号 (?) 将忽略指定文本的第二个字母。

步骤 2:找到第一个匹配项后,它返回了位置 3。

Excel match function

使用星号 (*) 运算符

我们将使用 MATCH() 函数中的文本字符串和一个星号 (*) 符号来查找模式。例如,Sp*。MATCH() 函数查找以 **Sp** 开头的文本。

步骤 1:选择一个单元格来存储结果,并输入以下 MATCH() 公式。它将在 Product 名称的开头查找具有 **Sp** 的匹配项。

=MATCH("Sp*",A1:A15,0)

Excel match function

它将在 Product 列中返回第一个匹配模式的位置。请记住,星号 (*) 运算符指向文本字符串中指定的模式。

步骤 2:找到第一个匹配项后,它返回了位置 7。

Excel match function

如果数据不匹配怎么办

当 MATCH() 函数找不到指定值时,Excel 会生成一个错误 (#N/A)。这个 #N/A 错误指的是**值不可用错误**。请参阅下面的屏幕截图,了解查找值不可用的 MATCH() 操作。

在给定的数据集中,我们正在 B38 到 B50 范围内搜索值 4349。让我们看看 #N/A 结果的 MATCH() 函数会怎样。

Excel match function

请注意,在指定范围内未找到 4349 的值。因此,它返回了 #N/A 错误,即值不可用错误。