在Excel中没有提供批量创建工作表的方法,常规操作无法完成。例如对图12.31中的费用预算表格,要针对多个部门各生成一份,难道只有一个一个表格复制?
图12.31 按模板生成多个部门的预算表
1. 基础操作
VBA编程的方法门槛较高,这里介绍使用数据透视表中显示报表筛选页的方法,操作步骤如下:
(1)进入《部门》工作表,以表格中部门数据创建一个数据透视表,拖动“部门”字段到“报表筛选”区域,如图12.32所示;
图12.32 以部门数据创建透视表
(2)选中生成的数据透视表,点击“数据透视表工具”|“选项”|“数据透视表”|“选项”|“显示报表筛选页”命令,弹出“显示报表筛选页”对话框,如图12.33所示;
图12.33 显示报表筛选页
(3)点击“确定”完成,奇迹出现,Excel自动生成了若干个工作表,工作表名称为透视表中的“部门”名称,如图12.34所示;
图12.34 自动生成多个工作表
(4)选中使用显示报表筛选页生成的各个部门的工作表,按“Ctrl+A”组合键全选、“Ctrl+C”组合键复制,再做一次数值化粘贴,将生成的所有数据透视表全部数值化;
(5)选取《模板》工作表中的A3:M15单元格区域,按“Ctrl+C”组合键复制,再次选取各个部门的工作表,定位到A3单元格后按“Ctrl+V”组合键粘贴;
(6)此时操作已基本完成,可以在选中各个部门工作表时继续对这些表格格式化。
示例文件:《12.4.1 透视表拆分多表1.xlsx》
2. 实战应用
在实际工作中面临的问题不会仅是复制一个空表那样简单。如图12.35所示为某企业客户资料表的部分,需按客户别生成核对表格。
图12.35 客户资料核对表
这个问题要复杂一些,在拆分时需要先在模板中做一些设置,操作步骤如下:
(1)在《模板》工作表中设置公式,以B1单元格为变量,分别在B3:B6及D3:D6单元格区域中录入查询公式,B3单元格中公式如下:
=INDEX(客户资料!$A:$A,MATCH($B$1,客户资料!$F:$F,))
这里涉及到的引用单元格全部使用绝对引用,在其他单元格中仅需改上述公式中INDEX函数第1参数中的引用列,例如D3单元格中的公式是引用《客户资料》工作表的B列,其他依此类推。
(2)之后的操作参照上个案例中的步骤,把《模板》工作表中的A3:D6单元格区域复制到数据透视表生成的各个工作表的A3单元格中,引用的公式随着B1单元格取值变化而变化。
这个案例是以B1单元格为变量来写函数公式的,如在实际工作中不需要如图12.35中的第1行,可以在多表拆分完成之后,批量选中相关的工作表,隐藏掉第1行即可。
示例文件:《12.4.1 透视表拆分多表2.xlsx》
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。