如何使用 Excel 匹配功能

您可以使用 Excel MATCH 函数来查找特定值在单元格区域或数组中的相对位置。

MATCH 函数类似于 VLOOKUP 函数,因为它们都归类在 Excel 查找/参考函数下。 VLOOKUP 搜索列中的特定值并返回同一行中的值,而 MATCH 函数搜索范围中的某个值并返回该值的位置。

Excel MATCH 函数在单元格区域或数组中查找指定值,并返回该值在该区域中第一次出现的相对位置。 MATCH 函数也可以用于查找某个值并在 INDEX 函数的帮助下返回其对应的值(就像 Vlookup 一样)。让我们看看如何使用 Excel MATCH 函数在一系列单元格中查找查找值的位置。

Excel MATCH 函数

MATCH 函数是 Excel 中的内置函数,主要用于定位查找值在列或行中的相对位置。

MATCH 函数的语法:

=MATCH(lookup_value,lookup_array,[match_type})

在哪里:

查找值 – 要在指定的单元格范围或数组中查找的值。它可以是数值、文本值、逻辑值或具有值的单元格引用。

查找数组 – 要在其中搜索值的单元格数组。它必须是单列或单行。

比赛类型 – 可选参数,可设置为 0,1 或 -1,默认为 1。

  • 0 查找完全匹配,如果找不到,则返回错误。
  • -1 按升序查找数组时,查找大于或等于lookup_value的最小值。
  • 1 在查找数组中按降序查找小于或等于look_up值的最大值。

查找精确匹配的位置

假设我们有以下数据集,我们想在其中找到某个值的位置。

该图像有一个空的 alt 属性;它的文件名是 allthings.how-how-to-use-excel-match-function-image-1.png

在此表中,我们要在列 (A2:A23) 中找到城市名称 (Memphis) 的位置,因此我们使用以下公式:

=MATCH("孟菲斯",A2:A23,0)

第三个参数设置为“0”,因为我们想找到城市名称的精确匹配。如您所见,公式中的城市名称“memphis”是小写的,而表格中城市名称的第一个字母是大写的(Memphis)。尽管如此,该公式仍然能够在给定范围内找到指定值的位置。这是因为 MATCH 函数不区分大小写。

笔记: 如果在查找范围内未找到 lookup_value 或者您指定了错误的查找范围,则该函数将返回 #N/A 错误。

您可以在函数的第一个参数中使用单元格引用而不是直接值。下面的公式在单元格 F2 中查找值的位置,并在单元格 F3 中返回结果。

查找近似匹配的位置

有两种方法可以查找查找值的近似或精确匹配并返回其位置。

  • 一种方法是找到大于或等于(下一个最大匹配)指定值的最小值。可以通过将函数的最后一个参数(match_type)设置为‘-1’来实现
  • 另一种方法是小于或等于给定值的最大值(下一个最小匹配)。可以通过将函数的 match_type 设置为‘1’来实现

下一个最小匹配

当匹配类型设置为'1'时,如果函数找不到与指定值完全匹配的值,则查找略小于指定值的最大值(即下一个最小值)并返回其位置.为此,您需要按升序对数组进行排序,否则将导致错误。

在示例中,我们使用以下公式来查找下一个最小匹配项:

=匹配(F2,D2:D23,1)

当此公式找不到与单元格 F2 中的值完全匹配时,它会指向下一个最小值(即 98)的位置 (16)。

下一场最大的比赛

当匹配类型设置为‘-1’并且 MATCH 函数找不到完全匹配时,它会找到大于指定值的最小值(即下一个最大值)并返回其位置。对于此方法,查找数组必须按降序排序,否则将返回错误。

例如,输入以下公式以查找与查找值的下一个最大匹配项:

=匹配(F2,D2:D23,-1)

该 MATCH 函数在查找范围 D2:D23 中搜索 F2 (55) 中的值,当找不到完全匹配时,它返回下一个最大值的位置 (16),即 58。

通配符匹配

仅当 match_type 设置为“0”且查找值为文本字符串时,才可以在 MATCH 函数中使用通配符。您可以在 MATCH 函数中使用通配符:星号 (*) 和问号 (?)。

  • 问号(?) 用于将任何单个字符或字母与文本字符串匹配。
  • 星号 (*) 用于将任意数量的字符与字符串匹配。

例如,我们在 MATCH 函数的 lookup_value (Lo??n) 中使用了两个“?”通配符来查找与具有任意两个字符(在通配符位置)的文本字符串匹配的值。并且该函数返回匹配值在单元格 E5 中的相对位置。

=MATCH("Lo??n",A2:A22,0)

您可以像 (?) 一样使用 (*) 通配符,但星号用于匹配任意数量的字符,而问号用于匹配任何单个字符。

例如,如果您使用‘sp*’,则该函数可以匹配扬声器、速度或斯皮尔伯格等。但如果该函数发现多个/重复值与查找值匹配,则它只会返回第一个值的位置。

在示例中,我们在 lookup_value 参数中输入了“Kil*o”。因此 MATCH() 函数搜索包含开头为“Kil”、结尾为“o”以及其间任意数量字符的文本。 ‘Kil*o’ 匹配数组中的乞力马扎罗,因此该函数返回乞力马扎罗的相对位置,即 16。

索引和匹配

MATCH 函数很少单独使用。它们通常与其他功能配对以创建强大的公式。当 MATCH 函数与 INDEX 函数结合使用时,它可以执行高级查找。许多人仍然喜欢使用 VLOOKUP 来查找值,因为它更简单,但 INDEX MATCH 比 VLOOKUP 更灵活和更快。

VLOOKUP 只能垂直查找值,即列,而 INDEX MATCH 组合可以进行垂直和水平查找。

INDEX 函数用于检索表或区域中特定位置的值。 MATCH 函数返回值在列或行中的相对位置。组合时,MATCH 查找特定值的行号或列号(位置),INDEX 函数根据该行号和列号检索值。

INDEX 函数的语法:

=INDEX(array,row_num,[col_num],)

不管怎样,让我们​​通过一个例子来看看 INDEX MATCH 是如何工作的。

在下面的示例中,我们要检索学生“Anne”的“Quiz2”分数。为此,我们将使用以下公式:

=INDEX(B2:F20,MATCH(H2,A2:A20,0),3)

INDEX 需要行号和列号来检索值。在上面的公式中,嵌套的 MATCH 函数查找值“Anne”(H2)的行号(位置)。然后我们将该行号提供给 INDEX 函数,其中包含我们指定的范围 B2:F20 和列号 (3)。 INDEX 函数返回分数“91”。

使用 INDEX 和 MATCH 进行双向查找

您还可以使用 INDEX 和 MATCH 函数在二维范围内查找值(双向查找)。在上面的例子中,我们使用 MATCH 函数来定位一个值的行号,但是我们手动输入了列号。但是我们可以通过嵌套两个 MATCH 函数来找到行和列,一个在 row_num 参数中,另一个在 INDEX 函数的 column_num 参数中。

使用以下公式通过 INDEX 和 MATCH 进行双向查找:

=INDEX(A1:F20,MATCH(H2,A2:A20,0),MATCH(H3,A1:F1,0))

众所周知,MATCH 函数可以在水平和垂直方向上查找值。在此公式中,colum_num 参数中的第二个 MATCH 函数查找 Quiz2 (4) 的位置并将其提供给 INDEX 函数。 INDEX 检索分数。

现在,您知道如何在 Excel 中使用匹配功能了。