描述
使用此函数可在数组或单元格区域中搜索指定项,并返回该项的相对位置。
XMATCH 是 MATCH 函数的高级版本。它可以进行精确匹配或近似匹配,并且可以按升序或降序搜索。
XMATCH 与 MATCH 的区别如下:
- XMATCH 支持二分查找,可加快对大型有序数据集的处理速度。
- XMATCH 允许在精确匹配模式下使用通配符。
- 如果找不到完全匹配的项,XMATCH 可以返回下一个更大或更小的项。
句法
XMATCH(lookup_value, lookup_array, [match_mode], [search_mode])
输入
该函数接受以下参数:
| 姓名 | 必要 | 描述 | 有效输入 |
|---|---|---|---|
查找值 |
是的 |
要在 lookup_array 中查找的值。 | 数字、文本字符串、逻辑值、单元格引用、单元格区域或公式,只要其结果为上述任何一种即可。 |
查找数组 |
是的 |
搜索的单元格范围。 | 单元格引用、单元格区域或公式,其结果可以是上述任何一种。 |
匹配模式 |
不 |
如何匹配 lookup_value。
|
0 (完全匹配),[默认] -1 (完全匹配或下一个较小的项)1 (完全匹配或下一个较大的项 )2 (通配符匹配)任何能产生上述任何结果 的公式都是可以接受的。 |
搜索模式 |
不 |
要使用的搜索模式。 | 1 (从第一个到最后一个搜索),[默认]-1 (从最后一个到第一个搜索)2 (升序二分查找) -2 (降序二分查找 )。 任何能得出上述任何结果的公式都是可以接受的。 |
实例
范例数据
| A | B | ||
|---|---|---|---|
| 1 | 苹果 | $1.25 | |
| 2 | 香蕉 | $0.75 | |
| 3 | 樱桃 | $2.50 | |
| 4 | 日期 | $3.00 |
示例配方
| 用例 | 公式 | 解释与结果 |
|---|---|---|
| 查找列表中某个精确值的相对位置。 | =XMATCH("樱桃", A2:A6) |
该公式的工作原理如下:
结果: 3。 |
| 通过查找大于或等于查找值的最小值来确定该值的相对位置。 | =XMATCH(1, B2:B6, 1) |
该公式的工作原理如下:
结果: 4。 |
| 使用通配符搜索在列表中查找值。 | =XMATCH("G*", A2:A6, 2) |
该公式的工作原理如下:
结果: #N/A。 |
| 从列表中的最后一个元素开始查找值的相对位置。 | =XMATCH("日期", A2:A6, 0, -1) |
该公式的工作原理如下:
结果: 4。 |
| 通过查找小于或等于查找值的最大值来确定该值的相对位置。 | =XMATCH(1.5, B2:B6, -1) |
该公式的工作原理如下:
结果: 4。 |
笔记
- XMATCH 返回匹配项在 lookup_array 中的相对位置。
- 如果未找到匹配项且未指定近似匹配项,则 XMATCH 返回 #N/A。
- 对于二分查找(
search_mode= 2 或 -2),lookup_array 必须按升序或降序排序。 - 仅当 match_mode 设置为 2 时才支持通配符(* 和 ?)。
- XMATCH 在匹配文本值时不区分大小写。
使用技巧
- 将 XMATCH 与 XLOOKUP 结合使用,可实现强大而灵活的查找操作。
- 对于大型排序数据集,使用二分查找(
search_mode2 或-2)可获得更好的性能。 - 处理未分类数据时,请使用
search_mode1 或-1 以确保结果准确。 - 您可以将 XMATCH 与其他函数(例如 INDEX )结合使用,以执行高级数据检索任务。