谷歌spreadseet EVAL功能

Mar*_*ghi 3 google-sheets google-apps-script

我有一个Google电子表格,其中包含不同的表格,每个表格代表不同的一周。

例如:

  • 1/12-1/16
  • 1/19-1/23

我想根据这些工作表的内容制作图表。我有什么办法可以制定公式并从单元格的内容中提取工作表的名称?

例如,类似“ = EVAL(A1)!$ B $ 4”的内容,那么我将获得“ 1/12-1/16”中的内容!$ B $ 4,而不必经历一年中的每个星期手动。

谢谢您的帮助!

小智 5

无需使用AppScript,INDIRECT足以从单元格中读取工作表名称:

=INDIRECT(A1 & "!$B$4")
Run Code Online (Sandbox Code Playgroud)

但是,如果您想从其索引而不是从单元格获取工作表名称,则看起来Andy的答案就是解决方法。


And*_*ndy 3

最好使用 AppScript。在“工具”->“脚本编辑器”中创建一个新的 AppScript 脚本:

function getSheetName(i) {
  var s = SpreadsheetApp.getActiveSpreadsheet().getSheets() 
  return s[i].getName();
}
Run Code Online (Sandbox Code Playgroud)

在脚本中使用该函数后,您就可以使用自定义函数=getSheetName(<SHEETNUMBER>),它将根据工作表编号(从 0 开始)检索工作表名称。从那里,只需将其合并到您的公式中即可。您可能需要使用INDIRECT

示例:=INDIRECT(getSheetName(1)&"!A1")获取第二个工作表中的单元格 A1。