小伙伴们大家好,今天我们来讲解一下:如何进行数据跨表查询?解决此类问题,传统的思路非常的简单:就是建立查询表数据源,也就是将多表的数据先合并后作为查询的数据源总表,然后运用VLOOKUP函数在此数据源中进行查询即可。而合并数据,无非就是手动复制粘贴,或者用一些合并工作表数据的第三方插件、VBA代码、或者是Power Query等实现,往往需要耗费一些时间,运用不熟练的话会造成时间浪费。而今天我们要用函数的方法来绕开此弊端。
如下图所示:
有三张分工作表,“河北”、“山西”、“广东”。每个工作表的表头格式一致,只是数据内容不同。
第一张工作表“河北”,显示地区与销量数据。
第二张工作表“山西”,显示地区与销量数据。
第三张工作表“广东”,显示地区与销量数据。
我们想要在查询表中对三个地区的工作表,根据地区名称查询对应的销量数据,如下图所示:
我们巧妙借助VSTACK函数进行查询区域数据合并操作,再搭配经典的VLOOKUP函数,实现跨表查询。下面我们就来看一下具体操作方法。
第一步我们需要构建查询区域的合并数据源。
我们在B2单元格输入函数公式:
=VSTACK(河北!A2:B5,山西!A2:B3,广东!A2:B4)
VSTACK函数作用:是将数组垂直堆叠到一个数组中。可以实现多工作表合并。
语法结构:
=VSTACK(数组1,[数组2]……)
我们用VSTACK函数,框选每个工作表中需要合并的数据区域:河北!A2:B5,山西!A2:B3,广东!A2:B4,分别作为VSTACK函数的三个参数,即可实现三个区域的数据的快速合并。
如果工作表有很多个,是不是要手动设置VSTACK函数的很多个参数呢?这样效率也就降下来了。当然不是,我们有一个操作技巧:
我们可以先输入VSTACK函数,接下来在其参数中,鼠标首先点击“河北”工作表,也就是需要合并的起始工作表,然后按住键盘上的Shift键,接着点击需要合并的最后一个工作表“广东”,接着框选其参数A2:B7,这里默认的是“河北”工作表中的参数。注意参数范围要尽量的大,以确保可以涵盖每个工作表中的最全数据范围:
=VSTACK(河北:广东!A2:B7)
这样我们就通过VSTACK函数实现了将三个工作表中的数据进行了合并,无论我们有多少个工作表,只要确定第一个工作表和最后一个需要合并的工作表后,按照这个输入规则操作,就轻松多了。
第二步我们需要在构建好的查询区域中,运用VLOOKUP函数进行查询。
继续完善B2单元格的函数公式:
=VLOOKUP(A2,VSTACK(河北:广东!$A$2:$B$7),2,0)
用VLOOKUP函数,查询A2单元格中地区名称,在查询区域:“河北:广东!$A$2:$B$7”中的第2列的销售数据。注意这里的第2参数要加上绝对引用,因为函数公式会进行向下的填充,保证查询数据区域的绝对固定。
20250124