龙空技术网

46一次查询多张工作表的方法

古哥计划 547

前言:

现时你们对“5表联查”大体比较看重,你们都想要知道一些“5表联查”的相关知识。那么小编在网摘上网罗了一些关于“5表联查””的相关内容,希望同学们能喜欢,兄弟们快快来学习一下吧!

VLOOKUP函数是古哥第一个启蒙函数,这个函数学会后,就离不开他了,无论是更新后的XLOOKUP的功能有多强大,还是习惯用它。现在回想起当年的使用感觉,就是太强大了,解决了很多生产计划中的问题;

不过有一个问题一直到新版本OFFICE更新后,才彻底解决了。不是困扰大家的反向查询(向左),也不是一对多的查询,更不是模糊查询,而是查询的条件分别在不同的工作表,如果只是2张工作表还好,可以用IFERROR来解决,原理就是先查询第1张表,如果第1张表找不到,就找第2张表;

如果工作表较多的情况下,就非常痛苦,需要把所有工作表合并起来再次查询,但是很多工作表又必须分开,而且合并多张工作表也是件容易的事情,需要用到VBA或者第三方插件。

在OFFICE 365 更新后的函数有一个函数VSTACK,配合上VLOOKUP函数,完美的解决了这个问题,这也是一个非常强大的组合,配合VSTACK函数,非常顺利的解决多工作表查询,汇总求和的难题;

01 函数说明:

Microsoft 365 专属函数,无此函数请更新OFFICE版本;

函数说明:按顺序垂直追加数组,以返回更大的数组

中文说明:就是两个区域的数组累加,按列的方式;

函数语法: (数据区域1,数据区域2,数据区域3,……)

注意事项:合并的数据区域的高度,也就是行数,如果选中了整列,如A:A,将无法与B:B 合并,返回错误,已经超过Excel的最大行数了;

02 实战案例:

如果只是函数本身来说,就一个合并的功能,并无太多的实战意义,但是如果配合上VLOOKUP函数,就完全不一样了,我们假设有6张表(实际可能更多),新建一个查询工作表,要在这6张表中找到工单号对应的型号和数量。

问题就是,不确定需要查询的工单在哪一张表上,有可能是表1,有可能是表2……,如果不配合VSTACK的话,需要VLOOKUP分别引用6张表,判断6次,非常繁琐。

解决方案:

解决的方案非常简单,利用VSTACK的合并功能,把需要查询的区域合并成一个新的区域;

这里需要注意的是,如果不确定每个表的行数,可以取一个相对比较大的行数,但又不能取整列,记住Excel的最大行数是104万行左右就行了;所有待合并的行数不能超过这个行数

举例说明:10张表合并,每个表1万行,合并就是10万行;

03 操作步骤:

第一步:录入函数VSTACK,并选中6张表的待合并区域,创建一个新的数据区域;注意这里的选中方法:先点表1,按住Shift键后再点表6,多张表也是一样,最后再选择需要合并的区域范围;

录入完成后,相当于把6张表的数据全部合并了,其中返回0的代表无数据的,因为无法判断每一张表的行数,这里选择用大范围来容错;

有了这个区域就简单了,作为VLOOKUP的第二参数就可以直接引用 了;

第二步:在查询表中录入函数VLOOKUP,把刚才VSTACK生成的新数据区域放在第二参数,绝对锁定这个区域,第三个参数,用CLOUMN(B1)替代2,向右填充得到3,第四参数绝对引用,录入0

B2 =VLOOKUP($A2,VSTACK(表1:表6!$A$2:$C$14),COLUMN(B1),0)

最后查询结果如下图:

我是古哥:

从事制造行业18年,在企业运营、供应链管理、智能制造系统等方面具有丰富的实战经验。企业智能化,柔性化计划运营管理专家,擅长通过企业流程优化规范,企业管理、导入计划运营提升企业效率;对提高企业准时交货率,降低企业库存,输出智能制造人才有丰富的经验。学习PMC生产计划,关注古哥计划!

标签: #5表联查