MATCH(查找值, 查找数组, [匹配类型])-公式函数服务中心-低代码平台-习听风雨丨专注WorkFine开发

MATCH(查找值, 查找数组, [匹配类型])

在Excel中,MATCH 函数用于在单元格区域中搜索特定的项,然后返回该项在此区域中的相对位置。

语法

MATCH(查找值, 查找数组, [匹配类型])

参数说明

  • 查找值 (lookup_value):必需。您希望在“查找数组”中找到的值。它可以是具体的数值、文本、逻辑值(TRUE/FALSE),或者是对包含这些值的单元格的引用。
  • 查找数组 (lookup_array):必需。要搜索的单元格区域(一维数组,即单行或单列)。函数会在这个区域中查找“查找值”。
  • 匹配类型 (match_type):可选。一个数字,指定 Excel 如何匹配“查找值”与“查找数组”中的值。可以是以下三种值:
    • 1省略:查找小于或等于“查找值”的最大值。注意:“查找数组”必须按升序排列(例如:-1, 0, 1, 2, A, B, …),否则可能返回不正确的结果。
    • 0:查找等于“查找值”的第一个值。注意:这是最常用的精确匹配方式。“查找数组”可以按任意顺序排列。对于文本查找,支持通配符 ?(代表任意单个字符)和 *(代表任意多个字符)。
    • -1:查找大于或等于“查找值”的最小值。注意:“查找数组”必须按降序排列(例如:Z, Y, X, …, 2, 1, 0, -1, …),否则可能返回不正确的结果。

示例

假设在单元格区域 A1:A5 中依次输入了以下数值:3, 5, 7, 9, 11

  • 示例 1 (精确匹配)
    • 公式:=MATCH(7, A1:A5, 0)
    • 结果3
    • 说明:在 A1:A5 区域中精确查找数值 7,它位于该区域的第 3 个位置。
  • 示例 2 (近似匹配 – 小于或等于的最大值)
    • 公式:=MATCH(6, A1:A5, 1)=MATCH(6, A1:A5) (省略匹配类型)
    • 结果2
    • 说明:查找小于或等于 6 的最大值。5 是满足条件的数,它位于 A1:A5 区域的第 2 个位置。注意:此例中数据是升序排列的,符合 match_type=1 的要求。
  • 示例 3 (近似匹配 – 大于或等于的最小值)
    • 公式:=MATCH(10, A1:A5, -1)
    • 结果4
    • 说明:查找大于或等于 10 的最小值。11 是满足条件的数,它位于 A1:A5 区域的第 4 个位置。注意:此例中数据是升序排列的,不符合 match_type=-1 要求的降序,但因为恰好有大于等于10的值且数据单调,结果碰巧正确。如果数据不是降序,结果可能错误。
  • 示例 4 (文本精确匹配)
    • 假设 B1:B3 包含:"苹果", "香蕉", "橙子"
    • 公式:=MATCH("香蕉", B1:B3, 0)
    • 结果2
    • 说明:在 B1:B3 区域中精确查找文本“香蕉”,它位于第 2 个位置。

用法注意事项

  1. 精确匹配是首选:当您需要找到完全相同的值时,务必使用 匹配类型 = 0。这是最安全、最常用的用法。
  2. 排序至关重要:当使用 匹配类型 = 1 时,确保“查找数组”是升序排列的;当使用 匹配类型 = -1 时,确保“查找数组”是降序排列的。如果排序不正确,函数返回的结果很可能是错误的。
  3. 处理错误:如果 MATCH 函数在“查找数组”中找不到符合条件的值,它将返回错误值 #N/A。您可以使用 IFERROR 函数来优雅地处理这种错误,例如:=IFERROR(MATCH(查找值, 查找数组, 0), "未找到")
  4. 文本匹配不区分大小写MATCH 函数在比较文本时,不区分字母的大小写。例如,查找 “APPLE” 和 “apple” 被视为相同。
  5. 通配符用于模糊查找:在 匹配类型 = 0 的文本查找中,可以使用 ? 代表任意单个字符,* 代表任意多个字符。例如,=MATCH("苹*", B1:B3, 0) 可以找到以“苹”开头的文本(如“苹果”)。
  6. 返回的是位置MATCH 函数返回的是“查找值”在“查找数组”中的相对位置(从1开始计数),而不是值本身。它常与 INDEX 函数结合使用,构成强大的查找组合(INDEX + MATCH),以替代 VLOOKUPHLOOKUP