取工作表名字符

根据题意,需要将当前工作表名的数字提取出来,如果没有括号就填1。
提取数值基本会用到提取数值的专用函数MID函数,但是有两个问题必须得考虑:
1. 如何将每个工作表的对应表名提取出来?
在工作表没有括号时,如何使他的值为1?
接下来我们就来解决这两个问题
问题一解决方法
提到取工作表名,就需要引入一个函数CELL返回某一区域左上角单元格位置、格式等信
形式为=CELL(信息类型,单元格区域范围)
这里信息类型举常见的几个例子,在表一的B1单元格输入12,即B1=12。
类型1:filename
=CELL("filename",B1)
返回的值单元格的位置信息
文档\a excel练习\12121-工作表名取字-8\[12121.xlsx]1.2 (2)
文档\a excel练习\12121-工作表名取字-8
[12121.xlsx]1.2 (2)工作簿和工作表名
类型2:contents
=CELL("contents",B1)
这个就会返回B1单元格的值,返回结果是12
类型3:colrow
=CELL("col",B1)
这里返回B1单元格的列,返回值为2
=CELL("row",B1)
这里返回B1单元格的行,返回值为1。
filename
(,再用MID函数往后取两个字符就可以拿到(2,最后再把(去掉就可以取到2这个值。去掉可以理解为替换成空值,所以用到SUBSTITUTE函数。
这里用FIND函数来定位(
=
所以取到表名的内容,就可以写出如下公式
=SUBSTITUTE(MID(CELL("filename",A1),FIND("(",CELL("filename",A1)),2),"(","")
这样就可以取到表名里面的内容了(这里的A1单元格可以填当前工作表里面的任意单元格)
但是没有()的表该怎么解决?这个就需要来解决问题二
问题二解决方法
没有括号时,这里要求是取1,那么我们可以当作有括号来处理,在路径后面加上(1),就可以满足。
CELL函数就变为
=CELL(filename,A1)&(1)
再按照问题一解决办法完善一下完善一下就OK
=SUBSTITUTE(MID(CELL("filename",A1)&"(1)",FIND("(",CELL("filename",A1)&"(1)"),2),"(","")
结果如图二

007
