EXCEL取工作表名字符「思路详解」
今天我们来一起探讨一下关于取工作表名字符的问题,如图一
根据题意,需要将当前工作表名的数字提取出来,如果没有括号就填1。
这里看到题目后,既然要提取数值,基本会用到提取数值的专用函数MID函数,但是有两个问题必须得考虑:
1. 如何将每个工作表的对应表名提取出来?
2.在工作表没有括号时,如何使他的值为1?
接下来我们就来解决这两个问题
问题一解决方法
提到取工作表名,就需要引入一个函数CELL,这个函数是一个信息函数,会返回某一区域左上角单元格位置、格式等信息。
形式为=CELL(信息类型,单元格区域范围)
这里信息类型举常见的几个例子,在表一的B1单元格输入12,即B1=12。
类型1:filename
=CELL("filename",B1)
返回的值就是这个单元格的位置信息,所在单元格的目录路径以及工作表名
G:\文档\a excel练习\12121-工作表名取字-8\[12121.xlsx]1.2 (2)
G:\文档\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函数来定位(
=FIND("(",CELL("filename",A1))
所以取到表名的内容,就可以写出如下公式
=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),"(","")
最后,教大家一个简单拖拽创建表单和生成报表的方法。使用简道云表单在线创建“云表格”,通过简单拖拽,即可制作出一个个柱形图、折线图、饼图等图表,1分钟实现数据可视化分析!非常方便~