XLOOKUP函数,同时查询两个表格,组合数据验证,动态多表查询

办公一定要科技鸭 2024-07-31 16:28:36

XLOOKUP函数,是新版Excel中的函数,用于根据指定的查找值在给定的数据范围或数组中搜索,并返回与该查找值相对应的结果。

其功能之强大,先来看看它的语法结构:

XLOOKUP(lookup_value,lookup_array,return_array,[if_not_found],[match_mode],search_mode])

白话翻译:

XLOOKUP(查找值, 查找数组, 返回数组, [未找到时的返回值], [匹配模式], [搜索模式])

这个函数的前三个参数,是必填参数,后面三个参数是选填参数,可以实现单条件的查找,反向查找,模糊查找,横向查找,区间查找,多列数据查找,交叉查找等各种复杂的查找需求。

今天我们来看一个特殊的需求,查找数组是两个单独的表格,这里为了好观看数据,我将2个表格放到了同一个表格里面。

如图所示,表格1里有部分产品数据,表格2里有部分产品数据,而查询表格里的产品编号是不分表格的,只要产品编号对应上,就显示出对应的数量。

先查询产品编号A01005的数量,这个是表格1里的产品编号,故我们用XLOOKUP函数先来查询表格1里面的数据,就非常容易书写函数公式:

=XLOOKUP(G3,$A$3:$A$8,$B$3:$B$8)

这里只使用到了XLOOKUP函数的三个参数。

G3:查找值

$A$3:$A$8:查找数组,也就是第一个表格里的产品编号,数据区域固定,习惯性添加绝对引用符号。

$B$3:$B$8:返回结果,也就是第一个表格里产品编号对应的数量,也就是我们想要获取的数量。

上面这个函数公式只能查询第一个表格的数据,如果我们把产品编号换成第二个表格里的编号,公式就会报错,那如何才能在两个表格里同时查找呢?

这个公式的第四个参数是“未找到时的返回值”,那么我们是不是可以这样来思考,如果在第一个表格里没有找到数据,就返回第二个表格里对应的数量呢?如何获取第二个表格里的数量,就还是使用XLOOKUP函数。

有了思路后,我们就修改公式:=XLOOKUP(G3,$A$3:$A$8,$B$3:$B$8,XLOOKUP(G3,$D$3:$D$8,$E$3:$E$8))

也就是第四个参数同样使用XLOOKUP函数,在第二个表格里再次查找一遍。

看起来公式较长,嵌套了一个XLOOKUP函数,其实只要理解了每一个参数的意思,是不是就特别容易理解了。

新手不太熟悉公式里的每个参数的,建议点击菜单栏下方的“FX”图标,打开参数面板,查看每一个参数的说明以及后面显示的值,以此来慢慢理解。

上面的查询表格里的产品编号是人工输入的,那我们做成下拉选项的样式,直接点击单元格,下拉选择产品编号,这样来切换查询数据,是不是更高级,更方便呢?

如何在表格里设置下拉选项?

这里的下拉选项是产品编号,数据可能较多,故我们可以找一个空白列,复制两个表格里的产品编号到一列,显示工作中有可能会有重复的编号,选中单列,点击菜单栏上“数据-删除重复值”,让产品编号保留唯一值。

选中整理好的产品编号列,点击菜单栏上“公式-定义名称”,弹出新建名称窗口,在名称输入框里自己定义个名称,如:编号。

选中查询表格下方的产品编号单元格,点击菜单栏上“数据-数据验证-数据验证”。

弹出窗口,点击验证条件,设置允许为序列,来源输入“=编号”,也就是前面我们整理的产品编号选项列。(这里如果不去定义名称,也可以直接点击右侧的箭头,选择整理好的产品编号列区域)

点击确定,单元格右侧出现下拉箭头符号,点击就显示出了所有的产品编号,我们就能下拉选择编号进行查询了。

现在不管你是输入A开头的编号,还是B开头的编号,H3里都会显示出对应的数量了。

怎么样?XLOOKUP嵌套XLOOKUP同时查询两个表格里的数据,并且组合数据验证实现动态查询,看起来是不是高大尚许多呢?

1 阅读:29

办公一定要科技鸭

简介:感谢大家的关注