靖宽琼
摘要:我们在使用公式查询或汇总多工作表数据时经常需要用到整个工作簿所有工作表的名称,该文通过案例介绍如何用宏表函数GET.WORKBOOK来提取Excel工作表名称。
关键词:Excel;宏表函数
中图分类号:TP317.3 文献标识码:A 文章编号:1009-3044(2016)27-0195-01
我们在使用公式查询或汇总多工作表数据时经常需要用到整个工作簿所有工作表的名称,下面通过案例介绍如何用宏表函数GET.WORKBOOK来提取工作表名称。
案例展示如图1所示,2013级1-9班学生技能成绩已统计出来,放在各工作表的E51:J52中,本例是要通过宏表函数GET.WORKBOOK和查找、引用函数将各工作表中的数据自动填入如图2的统计表汇总表中。
操作步骤如下:
一、提取工作表名称过程:
1)打开本例工作簿文件,选择【公式】-【名称管理器】命令,弹出“名称管理器”对话框。
2)单击“名称管理器”对话框中的“新建”按钮,打开“新建名称”对话框。
3)在“名称”框里输入一个定义名称(本例输入SheetName),方便在工作表中引用,并在“引用位置”处输入公式“=GET.WORKBOOK(1)&T(NOW())”,如图3所示。
4)点击“确定”按钮后返回工作表,在单元格A2中输入如下公式。
=REPLACE(INDEX(sheetname,ROW(A1))&T(NOW()),1,FIND("]",INDEX(sheetname,ROW(A1))),"")
提示:sheetname的工作表名称返回的是包括工作簿名称和工作表名的全名称。我们用REPLACE函数是将工作表名以外的所有字符替换掉,即只留下工作表名称。
5)按公式向下填充,就可以看到顺序返回了所有工作表名称,这样就可以在其他函数中引用了。结果如图4所示。
二、批量提取表中数据
工作表名称提取出来后,我们就可以套用在公式中,让指定表中的相关数据乖乖的来到汇总表中了。如图5所示,在D4单元格中建立公式=INDEX(INDIRECT(""&$K2&"!52:52"),COLUMN(E$52)),确定后即可得出工作表中数据,分别向右、向下复制公式,就可得到如图2的数据了。
计算完后将“统计汇总表”工作表中的K列数据进行隐藏即可。
本例中首先利用宏表函数取出当前工作簿中的所有工作表名称,再利用INDEX函数依次取出各个工作表名称,利用REPLACE函数将工作表名以外的所有字符替换成空白。这里需要说明的是GET.WORKBOOK宏函数公式在工作表发生新建或删除工作表后不能自动更新,所以在公式里用了T(NOW())函数,其意义是让NOW函数产生当前时间,再利用T函数转换成0,从而在不影响提取工作表名称的前提下,能让公式可以自动重算。
另外,如果是在2007版Excel中使用宏表函数,在保存工作簿时可选择另存为97-2003版Excel格式,也就是扩展名为.xls的格式。
参考文献:
[1] 起点文化. 图书:Excel2010函数与公式速查手册,2011-02.