编按: 同一文件中有多张工作表(sheet),如1月、2月、3月……12月。如何按条件将多个表的数据合并在一张表中?相比PQ方法,用函数VSTACK合并更快捷。 将一个文件(工作簿)的多张工作表合并成一张表,可以用PQ,也可以用函数。相对来说,用函数更便捷。下面,小窝介绍用VSTACK函数合并多表数据。 现在需要合并2月和4月的数据到汇总表中。2月和4月两张表的排列位置不连续(中间有其他表间隔)。公式=VSTACK('2月'!A2:E96,'4月'!A2:E90)譬如合并3月、4月、5月的数据。这三张表的排列位置是连续的,可以用简写公式进行合并。公式=VSTACK('3月:5月'!A2:E100)如果仍按1中的方法写,公式会比较长,=VSTACK('3月'!A2:E100,'4月'!A2:E100,'5月'!A2:E100)。位置连续的表,可以简化,只需用冒号将首尾两张表的名称连起来即可,'3月:5月'!A2:E100。如果要汇总当前表外的所有表,如这里的1月到5月,可以用通配符*进一步简化,公式写成= VSTACK('*'!A2:E100)。当前5张表的行数并非不一致,且都小于100,在合并中,多余的空行会被赋值为0,因此公式=VSTACK('3月:5月'!A2:E100)的汇总结果中有值为0的行。公式=WRAPROWS(TOCOL(VSTACK('3月:5月'!A2:E100),1),5)有时我们需要按指定条件合并表中的数据,譬如只合并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中的数据。
|