Excel职场必备技巧:30秒学会CELL函数提取工作表和工作簿的名称
使用公式
=CELL("filename",$A$1)
就能得到 A1 单元格所在工作表的完整路径,其中包含了工作表名称和工作簿名称,结合文本函数就能轻松获取工作表和工作簿的名称,如图1所示。
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 前加“!”,因为无论是哪个工作表的单元格,它们的工作簿名称都是一样的。
需要保留本文链接地址:http://www.excelxx.com/xuexixinde/12427.html