Excel - XMATCH 函数
XMATCH 函数
EXCEL XMATCH 函数检索数组或选定单元格范围内数据的相对位置。它仅限于使用单行或单列,但不兼容多列。在冗长的数据集中手动查找项目的位置非常耗时且繁琐。 XMATCH 函数是最新版本独有的,例如 Excel 365 或 Excel 2021。
兼容性
此高级 Excel 函数与以下版本的 MS-Excel 兼容 −
- Excel for Microsoft 365
- Excel for Microsoft 365 for Mac
- Excel for the web
- Excel 2024
- Excel 2024 for Mac
- Excel 2021
- Excel 2021 for Mac
语法
XMATCH 函数的语法如下 −
=XMATCH(lookup_value, lookup_array, [match_mode], [search_mode])
参数
您可以将以下参数与 XMATCH 函数一起使用 −
参数 | 描述 | 必需/可选 |
---|---|---|
lookup_value | 单元格引用指向您必须在数组中搜索的值。 | 必需 |
look_array | 指定一个数组。 | 必需 |
[match_model] | 数值,可以等于0,-1,1,2。 | 可选 |
[search_mode] | 表示搜索的类型。其值可以是1,-1,2,-2。 | 可选 |
match_model的类型
match_model的类型如下 −
- 0 精确匹配(默认)
- -1 表示另一个最小值/精确匹配。
- 1 指定另一个最大值/精确匹配。
- 2 指定通配符,如 ~、?、* 匹配。
search_mode 的类型
search_mode 的类型如下 −
- 1 从第一个到最后一个开始搜索。
- -1 以反向形式开始搜索。
- 2 根据定义的数组进行二分搜索,按非降序排序。
- -2 根据定义的数组进行二分搜索,按降序排序非升序形式。
要点
- 如果查找值不在数组中,XMATCH 函数将返回 #N/A 错误。
- 如果在数组中找到多个查找值,则如果第四个参数设置为 1,则 XMATCH 函数将检索第一个查找值的相对位置。否则,如果第四个参数设置为 -1,则 XMATCH 将返回最后一个匹配值。
XMATCH 函数示例
练习以下示例以了解 Excel 中 XMATCH 函数的用法。
步骤 1 − 在 Excel 365 中打开一个新工作表并创建两个具有相应条目的表格,如下图所示。我们的主要任务是找到员工 Daniel 的相对索引。

步骤 2 −在 E3 单元格中输入公式 "=XMATCH(F2,Table1[Employee Name])",然后按 Enter 键。

因此,XMATCH 函数将返回值 1,代表 Daniel 的员工在 Excel 中的相对位置。

您可以在查找值中使用通配符来进行字符串的部分匹配。XMATCH 函数中只会使用两个通配符 * 和 ?。在 F3 单元格中输入公式 "=XMATCH(F2,Table1[Employee Name],1)",然后按 Enter 键。


将 INDEX 函数与 XMATCH 函数结合使用
要在 Excel 中将 INDEX 函数与 XMATCH 函数结合使用,请按照以下步骤 −
步骤 1 −假设样本数据集如下图所示 −

步骤 2 − 现在,我们必须确定员工姓名的相对位置。在 F2 单元格中,我们写入了员工姓名"Dennis"。要查找其员工的相对位置,请在 F3 单元格中写入公式 =XMATCH(F2,Table1[[#All],[Employee Name]]),如下图所示 −

步骤 3 −按"Enter"键提取职位编号。现在,您需要确定相对职位为5的Dennis员工的奖励。在F4单元格中写入公式=INDEX(Table1[[#All],[Incentive]],XMATCH(F2,Table1[[#All],[Employee Name]])),如下所示 −

步骤4 − 因此,如下图所示,您将在F4单元格中获得Dennis的奖励"1000"。类似地,您可以在 F2 单元格中更改员工的姓名,并检索表中定义的激励。

这两个示例都提供了增强 Excel 技能的有趣方法。用户必须仔细编写 XMATCH 公式才能获得准确的值;否则可能会出现错误。