WPS XMATCH()函数的用法(附带实例)
XMATCH() 函数是 MATCH() 函数的升级版,在倒序查找、查找值包含通配符、查找相近值时,XMATCH() 函数都可以轻松应对,函数语法格式如下:
【实例 1】根据城市和年龄区间查询对应的用户人数(查找值包含通配符)。在 C4 单元格输入公式:

图 1 根据城市和年龄区间查询对应的用户人数
使用 VLOOKUP() 函数查找,VLOOKUP() 函数的第 1 个参数引用 G4 单元格,根据“城市”查询,第 2 个参数引用 B6:I16 单元格区域,在此单元格区域查找,因为年龄区间包含通配符,所以无法使用 MATCH() 函数查找年龄区间列的所在位置,可以使用 XMATCH() 函数来查找,查找到的年龄区间列的所在位置作为 VLOOKUP() 函数的第 3 个参数,VLOOKUP() 函数的第 4 参数匹配模式值设置为 0(表示精确匹配),公式即可返回城市和年龄区间对应的用户人数。
【实例 2】查找某一批次之前的数量合计。在 G18 单元格输入公式:

图 2 查找某一批次之前的数量合计
使用 XMATCH() 函数将第 4 个参数搜索方向设置为 –1(倒序搜索),可以返回查询批次在查找区域中最后出现的位置,将返回值作为 OFFSET() 函数的第 5 个参数扩展行数,OFFSET() 函数的第 1 个参数引用数据表中数量所在列第 1 行所在 D17 单元格,OFFSET() 函数会将此单元格作为基点,根据 XMATCH() 函数返回值,扩展为一个指定行数的单元格区域,然后使用 SUM() 函数对此单元格区域求和即可。
XMATCH(查找值, 查找数组, [匹配模式], [搜索模式])参数说明如下:
- 查找值(必填项):值、数组、单元格区域(非整行或整列引用)
- 查找数组(必填项):查找单元格区域或数组(单行或单列)
-
匹配模式(可选):
- 0(默认值) – 精确匹配
- -1 – 精确匹配,没有匹配项时返回下一个较小的项
- 1 – 精确匹配,没有匹配项时返回下一个较大的项
- 2 – 通配符匹配
-
搜索模式(可选):
- 1(默认值) – 正序搜索
- -1 – 倒序搜索
- 2 – 二分法搜索(参数 2 需升序排序)
- -2 – 二分法搜索(参数 2 需降序排序)
【实例 1】根据城市和年龄区间查询对应的用户人数(查找值包含通配符)。在 C4 单元格输入公式:
=VLOOKUP(G4,B6:I12,XMATCH(I4,B6:I6),0)效果如下图所示:

图 1 根据城市和年龄区间查询对应的用户人数
使用 VLOOKUP() 函数查找,VLOOKUP() 函数的第 1 个参数引用 G4 单元格,根据“城市”查询,第 2 个参数引用 B6:I16 单元格区域,在此单元格区域查找,因为年龄区间包含通配符,所以无法使用 MATCH() 函数查找年龄区间列的所在位置,可以使用 XMATCH() 函数来查找,查找到的年龄区间列的所在位置作为 VLOOKUP() 函数的第 3 个参数,VLOOKUP() 函数的第 4 参数匹配模式值设置为 0(表示精确匹配),公式即可返回城市和年龄区间对应的用户人数。
【实例 2】查找某一批次之前的数量合计。在 G18 单元格输入公式:
=SUM(OFFSET(D17,,,XMATCH(G16,C17:C25,,-1)))效果如下图所示:

图 2 查找某一批次之前的数量合计
使用 XMATCH() 函数将第 4 个参数搜索方向设置为 –1(倒序搜索),可以返回查询批次在查找区域中最后出现的位置,将返回值作为 OFFSET() 函数的第 5 个参数扩展行数,OFFSET() 函数的第 1 个参数引用数据表中数量所在列第 1 行所在 D17 单元格,OFFSET() 函数会将此单元格作为基点,根据 XMATCH() 函数返回值,扩展为一个指定行数的单元格区域,然后使用 SUM() 函数对此单元格区域求和即可。