在Excel工作表单元格中引用当前工作表名称
有多份Excel表格表头标题都为“××学校第1次拉练考试××班成绩表”,由于工作表结构都是一样的,所以我每次都是复制工作表然后编辑修改表中的数据。但经常是表中数据修改了,表头标题中的“第1次”忘记修改,造成表头标题与表中内容矛盾的尴尬。
后来我发现,其实每个工作表的名称都是以“第×次”命名的,如果我们能够在标题中直接引用当前工作表名称,那么我就用不着每次都要修改标题了。
那么,如何引用当前工作表的名称呢?咱们先说实现过程吧,其实挺简单的。
点击Excel 2007功能区“公式”选项卡“定义的名称”功能组中“定义名称”按钮,打开“新建名称”对话框,在“名称”右侧的输入框中输入“工作表名称”,然后在下方的“引用位置”右侧的输入框中输入公式“=RIGHT(CELL("filename"),LEN(CELL("filename"))-FIND("]",CELL("filename")))”,如图1所示,点击确定关闭此对话框。
现在,我们只要在工作表的空白单元格中输入公式“=工作表名称”,回车后就可以得到当前工作表的名称了。那剩下的事不就好办了吗?
在需要输入标题的单元格中输入公式“="××学校"&工作表名称&"拉练考试××班成绩表"”,回车,这样,就可以得到完整的标题了,如图2所示。以后,在此工作簿中复制此工作表,只要修改了工作表了名称,那么表头的标题也就会随之自动改变了。很方便吧?
现在,咱再来简单地解释一下公式中所用到的几个函数吧。
CELL("filename"):可以得到当前工作表的文件名(包括全部路径),比如本例的结果是“D:\My Documents\[拉练考试成绩.xls]第2次”。
LEN()函数的语法规则为“LEN(TEXT)”,它可以得到TEXT字符串的长度,包括空格在内。本例中LEN(CELL("filename"))的结果是“31”。也就是说CELL("filename")所得结果中共有31个字符。
公式中FIND("]",CELL("filename"))将返回的是在CELL("filename")的结果中查找字符“]”所在的位置。本例中该结果为“28”。就是说,字符“]”在CELL("filename")的结果中是第28个字符。而这个字符的右侧正是我们所需要的工作表名称。
而RIGHT函数,是可以返回根据所指定的字符数返回文本字符串中最后一个或多个字符。本例公式执行的结果其实是“=RIGHT("D:\My Documents\[拉练考试成绩.xls]第2次",31-28)”那就是说从字符串“D:\My Documents\[拉练考试成绩.xls]第2次”右侧截取后3个字符,所得结果正是“第2次”。http://www.cda.cn/view/17020.html
为了在使用的时候比较方便,我们为此公式定义了名称“工作表名称”。
好了,现在问题解决了。如果您也会遇到类似的问题,那么以上方法不妨一试。