描述
使用此函数可在数组或单元格区域中搜索指定项,并返回该项的相对位置。
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 (从第一个到最后一个搜索),[默认] |
实例
范例数据
| 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 )结合使用,以执行高级数据检索任务。