分享

Excel多个工作表数据合并用VSTACK函数比用PQ快!

 Excel教程平台 2024-05-16 发布于四川

  文 前 推 荐  


新函数VSTACK和HSTACK用法
新函数WRAPROWS和WRAPCOLS用法
简化公式的函数LET
新函数TOCOL和TOROW用法

编按:

同一文件中有多张工作表(sheet),如1月、2月、3月……12月。如何按条件将多个表的数据合并在一张表中?相比PQ方法,用函数VSTACK合并更快捷。

将一个文件(工作簿)的多张工作表合并成一张表,可以用PQ,也可以用函数。相对来说,用函数更便捷。下面,小窝介绍用VSTACK函数合并多表数据。
1.  合并位置不连续的工作表
当前文件有5个月份的数据。
现在需要合并2月和4月的数据到汇总表中。2月和4月两张表的排列位置不连续(中间有其他表间隔)。
公式=VSTACK('2月'!A2:E96,'4月'!A2:E90)
2.  合并位置连续的工作表
譬如合并3月、4月、5月的数据。这三张表的排列位置是连续的,可以用简写公式进行合并。
公式=VSTACK('3月:5月'!A2:E100)
说明:
(1)简化
如果仍按1中的方法写,公式会比较长,=VSTACK('3月'!A2:E100,'4月'!A2:E100,'5月'!A2:E100)。
位置连续的表,可以简化,只需用冒号将首尾两张表的名称连起来即可,'3月:5月'!A2:E100。
如果要汇总当前表外的所有表,如这里的1月到5月,可以用通配符*进一步简化,公式写成= VSTACK('*'!A2:E100)。
(2)行数不一致的处理
当前5张表的行数并非不一致,且都小于100,在合并中,多余的空行会被赋值为0,因此公式=VSTACK('3月:5月'!A2:E100)的汇总结果中有值为0的行。
可以修改公式,消除各表行数不一致的空行。
公式=WRAPROWS(TOCOL(VSTACK('3月:5月'!A2:E100),1),5)
TOCOL函数的第2参数为1,可以忽略空值。
单击了解TOCOL函数
单击了解WRAPROWS函数
3.  按条件合并多个工作表
有时我们需要按指定条件合并表中的数据,譬如只合并1月到5月“刘宏”的数据。
简单,可以在合并的基础上进行筛选。
公式=LET(X,WRAPROWS(TOCOL(VSTACK('1月:5月'!A2:E100),1),5),FILTER(X,CHOOSECOLS(X,2)="刘宏"))
说明:
WRAPROWS(TOCOL(VSTACK('1月:5月'!A2:E100),1),5)得到5表的合并数据,将其设置为变量X,然后用Filter函数筛选X中的数据。
不懂LET函数的可以单击此处

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多