> ## Documentation Index
> Fetch the complete documentation index at: https://help.dingtalk.io/llms.txt
> Use this file to discover all available pages before exploring further.

# 数据查找&匹配

> 在钉钉表格中使用 XLOOKUP、XMATCH、VLOOKUP、HLOOKUP、LOOKUP、MATCH 函数进行数据查找与匹配。

## 介绍 XLOOKUP 函数

## 更灵活的查找函数 - XLOOKUP

| 标签 | XLOOKUP ,  XMATCH ,<br />VLOOKUP ,  HLOOKUP ,  LOOKUP ,  MATCH |
| -- | -------------------------------------------------------------- |

在钉钉表格，可以使用 **XLOOKUP** 函数来实现查找匹配。相比原有的查找函数(LOOKUP, VLOOKUP, HLOOKUP)，XLOOKUP 函数更加灵活、查找速度更快。

## XLOOKUP 简介

XLOOKUP 函数在“查找范围”中查找“目标值”，查找成功时，根据查找结果在“查找范围”的位置，在“结果范围”取对应位置的数据，作为结果返回。

XLOOKUP 有 6 个参数，依次是：

* **目标值（必填）**

* **查找范围（必填）**

* **结果范围（必填）**

* **如果没找到目标值时返回的结果**

* **匹配类型**

* **搜索方式**

具体的参数说明：在钉钉表格的工具栏<strong>公式</strong><img src="https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/a/deEa4rQyZH8Y3OnB/5617f55e68ff4f898564458e7a2f7bce0521.png" referrerPolicy="no-referrer" alt="公式.png" /> **—>全部函数**，搜索“XLOOKUP”函数

## “查找范围”和“结果范围”可以在任何位置

原有的查找函数要求“结果范围”在“查找范围”的右侧或下方，在一些场景中可能给您带来困扰。而在 XLOOKUP 函数中，“查找范围”和“结果范围”是独立的参数（第 2、3 参数），摆脱了源数据的结构要求：

|                                                                                                                                                                        |
| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <img src="https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/a/drPjjD5YQub2qDxb/3eba4d35d3a2493da2b406be8b50eba40579.png" referrerPolicy="no-referrer" alt="image.png" /> |
|                                                                                                                                                                        |

图 1 在范围 B2:B5 中查找“橘子”，查找到的位置是第 2 个，

因此结果是范围 A2:A5 的第 2 个数据“dd231”

XLOOKUP 函数没有“查找方向”的概念，要求“查找范围”必须是单行或单列的。根据匹配到的第几行/列，取结果范围的第几个值。如：

|                                                                                                                                                                        |
| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <img src="https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/a/drPjjD5YQub2qDxb/70bac567f24c45fa87de9342f4c644460579.png" referrerPolicy="no-referrer" alt="image.png" /> |
|                                                                                                                                                                        |

图 2 在范围 A1:D1 中查找“销售单价”，查找到的位置是第 3 个，

因此结果是范围 A3:D3 的第 3 个数据 2.3

## 没有找到匹配值时的默认结果

在未查找到目标值时，原有的查找函数返回 #N/A 错误。而在 XLOOKUP 中，你可以指定默认值（第 4 个参数），当未查找到目标值时，该值作为结果返回：

|                                                                                                                                                                        |
| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <img src="https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/a/drPjjD5YQub2qDxb/4052b558bf98436dbda1f8a071d1ff480579.png" referrerPolicy="no-referrer" alt="image.png" /> |
|                                                                                                                                                                        |

图 3 在范围 B2:B5 中未找到“车厘子”，因此函数以第 4 个参数作为结果

## 更细致的查找方式

XLOOKUP 函数的第 5、6 参数分别是“匹配类型”和“搜索方式”，你可以通过组合它们来指定更细致的查找方式。

| 匹配类型 | 0  | 默认值，只查找与“目标值”完全相等的值。                                                              |
| ---- | -- | --------------------------------------------------------------------------------- |
|      | 1  | 优先查找与“目标值”完全相等的值。如果没有，则取\*\*“比目标值大的”最小值\*\*。                                      |
|      | -1 | 优先查找与“目标值”完全相等的值。如果没有，则取\*\*“比目标值小的”最大值\*\*。                                      |
|      | 2  | “目标值”作为<strong>通配符</strong>规则进行匹配。                                                |
| 搜索方式 | 1  | 默认值，按“查找范围”中值的顺序，依次进行匹配。                                                          |
|      | -1 | 按“查找范围”中值的顺序，<strong>倒序</strong>进行匹配。                                             |
|      | 2  | 认为“查找范围”中的值已经按<strong>升序</strong>排序，使用二分搜索算法进行匹配。查找速度更快，但如果“查找范围”未排序，则查找结果可能是错误的。 |
|      | -2 | 认为“查找范围”中的值已经按<strong>降序</strong>排序，使用二分搜索算法进行匹配。查找速度更快，但如果“查找范围”未排序，则查找结果可能是错误的。 |

例如，查找最接近目标销售额的商品：

|                                                                                                                                                                        |
| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <img src="https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/a/drPjjD5YQub2qDxb/21926a9cbb144a328a046a1482adec4f0579.png" referrerPolicy="no-referrer" alt="image.png" /> |
|                                                                                                                                                                        |

图 4 函数配置了第 5 个参数 -1，表示查找 100 或比 100 小的最大值。

在范围 D2:D5 中找到符合要求的数据 77，因此取对应位置的结果“西瓜”返回。

## 进阶！XLOOKUP 的嵌套使用

XLOOKUP 的“结果范围”允许是多行多列，根据查找结果，XLOOKUP 会范围对应行/列的多个结果。根据这一特性，XLOOKUP 函数可以与其他函数搭配，满足更多的场景。如：

|                                                                                                                                                                        |
| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <img src="https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/a/drPjjD5YQub2qDxb/29ba6350738a4b66a8d54b77a613f7210579.png" referrerPolicy="no-referrer" alt="image.png" /> |
|                                                                                                                                                                        |

图 5

图 5 中，“Kaola” 位于“查找范围”的第 3 行，因此 XLOOKUP 函数对应地取“结果范围”的第 3 行数据，即“30, 40, 50, 60”。接着，SUM 函数对 XLOOKUP 函数的结果求和，得到最终结果“180”。

|                                                                                                                                                                        |
| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <img src="https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/a/drPjjD5YQub2qDxb/0a3403b8ca9846b8964538fa362357300579.png" referrerPolicy="no-referrer" alt="image.png" /> |
|                                                                                                                                                                        |

图 6

图 6 中，内层的 XLOOKUP 函数返回了结果“30, 40, 50, 60”，作为“结果范围”返回给外层 XLOOKUP 函数；接着，外层的 XLOOKUP 函数在 B2:E2 范围中查找“第三季度”，找到的位置是第 3 个，因此从“30, 40, 50, 60”中取得结果“50”。

## 扩展阅读

类似地，**XMATCH** 也拥有更灵活的特性和更快的查找速度，可以替代原有的 MATCH 函数。在钉钉表格的工具栏-公式-全部函数，搜索“XMATCH”函数查看详细的参数说明。

***
