使用 XLOOKUP 函数按行查找表格或区域中的内容。 例如,按部件号查找汽车部件的价格,或根据员工 ID 查找员工姓名。 使用 XLOOKUP,可以不论返回列位于哪一侧,都可以在一列中查找搜索词,并返回另一列中同一行的结果。
注意
XLOOKUP 在 Excel 2016 和 Excel 2019 中不可用。 但是,如果工作簿是由其他人使用较新版本的 Excel 创建的,则你可能会遇到在 Excel 2016 或 Excel 2019 中使用带有 XLOOKUP 函数的工作簿的情况。
语法
XLOOKUP 函数搜索某个区域或数组,然后返回与它找到的第一个匹配项对应的项目。 如果不存在匹配项,则 XLOOKUP 可以返回最接近 (近似) 匹配。
=XLOOKUP(lookup_value, lookup_array, return_array, [if_not_found], [match_mode], [search_mode])
| 参数 | 说明 |
|---|---|
|
lookup_value 必需* |
要搜索的值 *如果省略,XLOOKUP 将返回它在 lookup_array 中找到的空白单元格。 |
|
lookup_array 必需 |
要搜索的数组或区域 |
|
return_array 必需 |
要返回的数组或区域 |
|
[if_not_found] 可选 |
如果找不到有效的匹配项,则返回提供的 [if_not_found] 文本。 如果找不到有效的匹配项,并且缺少 [if_not_found],则返回 #N/A 。 |
|
[match_mode] 可选 |
指定匹配类型: 0 - 完全匹配。 如果未找到,则返回 #N/A。 这是默认选项。 -1 - 完全匹配。 如果没有找到,则返回下一个较小的项。 1 - 完全匹配。 如果没有找到,则返回下一个较大的项。 2 - 通配符匹配,其中 *, ? 和 ~ 有特殊含义。 |
|
[search_mode] 可选 |
指定要使用的搜索模式: 1 - 从第一项开始执行搜索。 这是默认选项。 -1 - 从最后一项开始执行反向搜索。 2 - 执行依赖于 lookup_array 按升序排序的二进制搜索。 如果未排序,将返回无效结果。 2 - 执行依赖于 lookup_array 按降序排序的二进制搜索。 如果未排序,将返回无效结果。 |
示例
示例 1 使用 XLOOKUP 在某个区域内查找国家/地区名称,然后返回其电话国家/地区代码。 它包括 lookup_value (单元格 F2) 、 lookup_array (区域 B2:B11) ,以及 return_array (区域 D2:D11) 参数。 它不包括 match_mode 参数,因为 XLOOKUP 默认生成完全匹配项。
注意
XLOOKUP 使用查找数组和返回数组,而 VLOOKUP 使用后跟列索引号的单个表数组。 在本例中,等效的 VLOOKUP 公式为: =VLOOKUP (F2,B2:D11,3,FALSE)
———————————————————————————
示例 2 基于员工 ID 号查找员工信息。 与 VLOOKUP 不同,XLOOKUP 可以返回包含多个项目的数组,因此单个公式可以从单元格 C5:D14 返回员工姓名和部门。
———————————————————————————
示例 3 向上一个示例添加了一个 if_not_found 参数。
———————————————————————————
示例 4 在 C 列中查找单元格 E2 中输入的个人收入,并在 B 列中找到匹配的税率。它设置 if_not_found 参数 (如果未找到任何内容,则返回 0 零) 。 match_mode参数设置为 1,这意味着函数将查找完全匹配项,如果找不到,则返回下一个较大的项目。 最后, search_mode 参数设置为 1,这意味着函数将从第一项搜索到最后一项。
注意
XARRAY 的 lookup_array 列位于 return_array 列的右侧,而 VLOOKUP 只能从左到右查看。
———————————————————————————
示例 5 使用嵌套的 XLOOKUP 函数执行垂直和水平匹配。 它首先在 B 列中查找“ 毛利润 ”,然后在表顶行 (范围 C5:F5) 中查找 Qtr1 ,最后返回两者交叉处的值。 这类似于同时使用 INDEX 和 MATCH 函数。
提示
你也可以使用 XLOOKUP 替换 HLOOKUP 函数。
注意
单元格 D3:F3 中的公式为: =XLOOKUP (D2,$B 6:$B 17,XLOOKUP ($C 3,$C 5:$G 5,$C 6:$G 17) ) 。
———————————————————————————
示例 6 使用 SUM 函数和两个嵌套的 XLOOKUP 函数对两个范围之间的所有值求和。 在这种情况下,我们想要对葡萄、香蕉和梨的值求和,它们介于两者之间。
单元格 E3 中的公式为: =SUM(XLOOKUP(B3,B6:B10,E6:E10):XLOOKUP(C3,B6:B10,E6:E10))
它如何工作? XLOOKUP 返回一个范围,因此在计算时,公式最终会如下所示: =SUM($E$7:$E$9)。 通过选择包含与此类似的 XLOOKUP 公式的单元格,然后选择“公式”、“>公式”、“公式审核>”、“公式求值”,然后选择“求值”以逐步执行计算,可以自行查看其工作原理。
注意
感谢 Microsoft Excel MVP Bill Jelen 提供此示例的建议。
———————————————————————————