可以获取工作表名称吗?


Answers:


7

Microsoft 解释说,您可能需要使用数组公式来获取工作表名称:

要显示当前工作表的名称,请输入以下公式作为数组公式

=RIGHT(CELL("filename"),LEN(CELL("filename"))-
  MAX(IF(NOT(ISERR(SEARCH("\",CELL("filename"),
  ROW(1:255)))),SEARCH("\",CELL("filename"),ROW(1:255)))))

其中“文件名”实际上是单词“文件名”,用引号引起来。

注意:您必须输入此公式作为数组公式。要将公式输入为数组公式,请按CTRL + SHIFT + ENTER。

另请注意,这非常依赖平台。在Mac上,您需要使用不同的公式,因为它使用了不同的路径分隔符。此外,它在OpenOffice.org和其他替代产品中的工作方式可能有所不同。在未保存的工作簿上使用时,您可能会得到#VALUE!替代。

当不使用数组公式时,您可能会获得工作簿的名称(其文件名的最后一部分),如下所示:

仅返回工作簿的名称,如以下公式中所使用的:

=MID(CELL("filename"),SEARCH("[",CELL("filename"))+1,
  SEARCH("]",CELL("filename"))-SEARCH("[",CELL("filename"))-1)

7

这是一个公式。

=MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,256)

链接到更多信息


注意,不需要引用“ A1”。另外,请注意,这与平台无关,并且在保存工作簿之前,该公式可能保持空白。另请参阅support.microsoft.com/kb/323225
Arjan 2010年

如果将其放在两个工作表中,则两个工作表中的名称都相同。它不会获取单元格所在的当前工作表。它会获取我正在查看的当前工作表,并复制所有其他工作表中所有其他字段上的值。
BrunoLM 2010年

2

首先保存文件,然后在任何地方输入此公式

=RIGHT(CELL("filename"),LEN(CELL("filename"))-FIND("]",CELL("filename")))

+这确实有效,而且很简短。附带说明:在德语Excel中使用=RECHTS(ZELLE("dateiname");LÄNGE(ZELLE("dateiname"))-FINDEN("]";ZELLE("dateiname")))
nixda 2014年

就我而言,我需要使用;而不是,分离函数的元素时
WoJ 2015年

0

经过M $ EXCEL和LibreOffice CALC的测试并可以工作(公式为西班牙语):

=EXTRAEB(CELDA("filename");SI(ESERROR(1+HALLAR("]";CELDA("filename")));SI(ESERROR(3+HALLAR("'#$";CELDA("filename")));0;3+HALLAR("'#$";CELDA("filename")));1+HALLAR("]";CELDA("filename")));LARGO(CELDA("filename")))

注意:这是一个庞大的公式,可以放入其他公式中或仅使用一个单元格。

我用英语想:EXTRAEB是MIDB,CELDA是CELL,SI是IF,ESERROR是ISERROR,HALLAR是FIND,LARGO是LENGTH。

如果将如此庞大的公式分成多个单元格(以避免多次调用同一单元格),那就更好了:

  1. =CELDA("filename")
  2. =1+HALLAR("]";<CellReferenceFor_1>)
  3. =3+HALLAR("'#$";<CellReferenceFor_1>)
  4. =ESERROR(<CellReferenceFor_2>;)
  5. =ESERROR(<CellReferenceFor_3>;)
  6. =EXTRAEB(<CellReferenceFor_1>;SI(<CellReferenceFor_4>;SI(<CellReferenceFor_5>;0;<CellReferenceFor_5>);<CellReferenceFor_4>);LARGO(<CellReferenceFor_1>))

为什么在地狱中获取工作表名称是如此复杂,而在现代电子表格中获取工作表在工作表列表中的位置却是如此容易(警告,在EXCEL 2000中,此表不存在): =HOJA(A1)

还有另一件事:为什么每种语言的功能都不同,如果我有M $ EXCEL是西班牙语和英语的CALC(更不用说俄语,中文)了,该怎么办?多么辛苦的工作,需要记住乘法成语上的所有函数名称。

在内部,它们使用特定名称保存,例如=SHEET(A1),与=HOJA(A1)另存为=_xlfn.SHEET(A1);为什么不对所有习语使用最后一个?

或以另一种形式说:为什么如果我用英语输入它说它不是有效的函数名(如果CALC / M $ EXCEL不是英语)?

有了不会发生的M $ ACCESS和SQL函数,在西班牙语版本中,我可以在西班牙语ESNULO()和英语上键入它们,并且ISNULL()可以正确使用它。

如果太复杂而不能接受两者;好吧,那就只接受一个,不要本地化idom!

好了,再问一个问题,我在这个庞大公式上使用的技巧是测试是否]存在(M $ EXCEL),否则测试是否存在'#$(LibreOffice CALC),同时从中提取名称=CELL("filename")。太奇怪了!

再次提出讽刺的问题:为什么要加上=SHEET(A1)而不是=SHEETNAME(A1)?这使我们所有人都更加努力!


-1

在LibreOffice上,我将您的公式混合到以下内容中,并且末尾的数字20是将要显示的字符的限制:

=(SUBSTITUTE(MID((RIGHT(CELL(“文件名”)),LEN(CELL(“文件名”)))-MAX(IF(NOT(ISERR(SEARCH(“ \”,CELL(“文件名”),ROW(1 :255:255))))),SEARCH(“ \”,CELL(“文件名”),ROW(1:255:255))))))),FIND(“#$”,(RIGHT(CELL(“ filename “),LEN(CELL(” filename“))-MAX(IF(NOT(ISERR(SEARCH(” \“,CELL(” filename“),ROW(1:255:255)))),SEARCH(” \ “,CELL(”文件名“),ROW(1:255:255)))))))))+ 2,20),1,1))


1
这是针对MS Excel的。
詹姆斯·默兹
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.