设置主页 | 收藏本站 Excel学习网-公益型的EXCEL在线学习网站,助您轻松办公!

Excel职场必备技巧:30秒学会CELL函数提取工作表和工作簿的名称

2020年04月25日 20:21 发布来源:Excel学习网

 使用公式

=CELL("filename",$A$1)

就能得到 A1 单元格所在工作表的完整路径,其中包含了工作表名称和工作簿名称,结合文本函数就能轻松获取工作表和工作簿的名称,如图1所示。

Excel职场必备技巧:30秒学会CELL函数提取工作表和工作簿的名称

图1 利用CELL函数提取工作表和工作簿名称

1 提取工作表名称

以图1为例,B2 单元格是 CELL 函数返回的目标单元格所在工作表的完整路径,值为“I:\EXCELHOME\Excel 2007函数与公式实战技巧精粹\第 4章\附件\[技巧 6提取工作表和工作簿名称.xlsx]逻辑演示”,目前要提取工作表名称“逻辑演示”。

工作表名称即是B2单元格方括号“]”右侧的文本,因此关键是计算出方括号“]”在B2单元格字符串中的位置,该位置加1即是工作表名称起始的位置,这可以由以下公式得到:

=FIND("]",B2,1)+1

因此提取工作表名称可以由以下公式实现:

=MID(B2,FIND("]",B2,1)+1,100)

将B2单元格的公式

=CELL("filename",$A$1)

代入上述公式后的完整公式为:

=MID(CELL("filename",$A$1),FIND("]",CELL("filename",$A$1),1)+1,100)

提示:如果工作表名称长度超过100,可以将数字100修改为足够大的数字。

为方便快速提取当前工作表的名称,可以定义名称 ShtName,并为其指定公式:

=MID(CELL("filename",!$A$1),FIND("]",CELL("filename",!$A$1),1)+1,100)

该公式与完整公式略有不同,在CELL函数引用单元格前添加了“!”叹号。原因在定义名称时Excel将强制为公式中的引用指定工作表名称,如“Sheet1!$A$1”,此处未指明工作表名称使得该名称可以在工作簿任意工作表中使用。

2 提取工作簿名称

依然以图1所示为例,B2单元格的值为“I:\EXCELHOME\Excel 2007函数与公式实战技巧精粹\第4章\附件\[技巧6提取工作表和工作簿名称.xlsx]逻辑演示”,要提取工作簿名称,即是要提取左右方括号“[”、“]”之间的文本。

使用上一个例子的思路可以实现对工作簿名称的提取,此处介绍另一个思路。使用 REPLACE函数将B2单元格方括号“[”左侧的部分都替换为空文本得到“中间过程”,然后以同样的方式将“中间过程”中的方括号“]”及其右侧的部分也替换为空文本,最终得到工作簿名称。

通过以下公式可以得到“中间过程”,值为"技巧6提取工作表和工作簿名称.xlsx]逻辑演示"。

=REPLACE(B2,1,FIND("[",B2,1),"")

通过以下公式可以从“中间过程”中剔除方括号“]”及其右侧的文本:

=REPLACE(中间过程,FIND("]",中间过程,1),100,"")

因此最终的完整公式为:

=REPLACE(REPLACE(B2,1,FIND("[",B2,1),""),FIND("]",REPLACE(B2,1,FIND("[",B2,1),""),1),100,"")

如果将B2单元格公式

=CELL("filename",$A$1)

代入,那么最后的公式如下所示。

=REPLACE(REPLACE(CELL("filename",$A$1),1,FIND("[",CELL("filename",$A$1),1),""),FIND("]",REPL ACE(CELL("filename",$A$1),1,FIND("[",CELL("filename",$A$1),1),""),1),100,"")

将上述公式直接定义为名称 WrkName 即可直接使用,无需在单元格引用$A$1 前加“!”,因为无论是哪个工作表的单元格,它们的工作簿名称都是一样的。

原创文章如转载请注明:转载自Excel学习网 [ http://www.excelxx.com/]
需要保留本文链接地址:http://www.excelxx.com/xuexixinde/12427.html
分享到:
网站地图 | XML地图 | 免责声明 | 关于我们 | Excel学习网:优秀的EXCEL在线学习和资源分享网站。
版权所有: CopyRight © 2013-2018 www.excelcn.com All Rights Reserved.
豫ICP备12002644号