Excel多表合并一定要用VBA代码吗?
工作中有时候需要将多张工作表汇总到一张工作表,这个问题在我的Excel书《Excel高手捷径:一招鲜,吃遍天》中第118招和119招介绍了用VBA代码实现。本文另辟蹊径用函数和公式瞬间实现多表合并。
例如:有N多个以月份命名的excel工作表(为演示方便以6个为例,如图1),每张表字段名相同(图2),现需要把表格全部合并到一个表中去。
工作表名:
图 1
每张表字段名:
图 2
操作步骤如下:
Step1:在汇总表输入字段名,A2单元格手工输入第一张工作表名称1月,点击单元格右下角+往下拖动到A7,如图3:
图 3
Step2:在B2单元格输入公式=INDIRECT($A2&"!"&ADDRESS(INT(ROW(A1)1)/6+2,COLUMN(A1))),向右拖动公式,再向下拖动公式,得到图4。
图 4
公式说明:
/6中数字6为要合并的工作表实际个数。
$A2是工作表名称所在列(本例是A列),
INT((ROW(A1)-1)/6)+2:目的是生成2,2,2,2,2,2,3,3,3,3,3,3,4,4,4,4,4,4序列,
ADDRESS():动态生成引用的单元格地址。
indirect函数功能是返回并显示指定引用的内容,可引用其他工作簿的名称、工作表名称和单元格引用。在之前的制作二级联动菜单也用到这个函数。
Step3:复制A:D列区域(如果有100张表就选取A2:D101),然后选取下面的空行粘贴即可完成全部数据提取。
如果工作表名称没规律怎么办?可以用宏表函数GET.WORKBOOK提取,我的Excel书中第117招介绍了用宏表函数提取工作表名称。
赞 (0)