胡文颖
(江西财经大学,江西 南昌 330032)
本章综合运用Excel对多表进行合并的技巧,深入探讨和研究多表合并问题。工作中有时候需要将多张工作表合并到一张工作表,针对这一问题,本文总结了3种解决方法:Power Query工具、SQL、函数与公式。3种方法难度依次递增,如此大大减少实际应用中的针对多个表格进行数据处理的时间,在一定程度上提高了工作效率。值得注意的是,这些技巧需要在office365中才能得到应用。
有N个以月份命名的Excel工作表(为演示方便以5个为例),每张表字段名相同,如图1所示,现需要把表格全部合并到一个表中去,如图2所示。
图1 产品销售表
图2 各月份销售表
Power Query是Excel 2016标配的功能。下面我们看看怎么利用这个工具实现多表合并。操作步骤如下。
Step1:点击菜单数据→新建查询→从文件→从工作簿,找到当前文件的位置并导入。
Step2:在打开的导航器,选择要合并的多个工作表,再点击“编辑”,如图3所示。
Step3:在打开的“查询编辑器”中点击“追加查询”,选择要合并的工作表,点击“确定”,如图4所示。
Step4:点击“关闭并上载”,瞬间生成了6张工作表,sheet1就是把5个月的报表合并后的汇总表(见图5),sheet2到sheet5是多余无用的表,点击sheet2,按住shift键选中sheet2到sheet工作表,右键“删除”,可将sheet2到sheet5删除,如图6所示。
图3 打开导航器效果
图4 打开Power Query编辑器
图5 产品销售表合并
图6 删除无用表效果
Step1: 打开多表合并后需要存放的工作表,点击菜单数据→现有连接→浏览更多,找到需要合并的文件,点击“打开”,数据连接属性如图7所示。
Step2:点击浏览更多。
图7 数据连接属性
select “11月” as 月份, * from [11月$] union all
select “10月” as 月份, * from [10月$] union all
select “9月” as 月份, * from [9月$] union all
select “8月” as 月份, * from [8月$] union all
select “7月” as 月份, * from [7月$]
Step3:点击“确定”,返回图5-18-106界面,再点击“确定”,瞬间即把5张表汇总到一张表,并且增加一个字段月份,部分数据截图如图8所示。
图8 多表合并图
Step1:在汇总表输入字段名,A2单元格手工输入第一张工作表1月,点击单元格右下角+往下拖动到A7。
Step2:在B2单元格输入公式:
=INDIRECT($A2&”!”&ADDRESS(INT(ROW(A1)-1)/+2,COLUMN(A1)),向右拖动公式,再向下拖动公式,得到结果如图9所示。
图9 公式方法多表合并
公式说明:
把/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():动态生成引用的单元格地址
Step3:复制A:D列区域(如果有100张表就选取A2:D101),然后选取下面的空行粘贴即可完成全部数据提取。