【问题标题】:reference to another Google sheet by its index in formula通过公式中的索引引用另一个 Google 工作表
【发布时间】:2020-02-04 23:31:34
【问题描述】:

我正在尝试在谷歌表格中获取通用公式来引用“上一个”表格中的单元格。 这意味着我需要能够在不使用其名称的情况下引用它,而是使用它的索引号。

它看起来像这样。

=getsheetbyindex(thissheetindex()-1)!A1

我想在没有脚本的情况下执行此操作。我已经搜索并尝试查看 google 的帮助,但除了名称之外找不到访问工作表的方法。

编辑:可以使用脚本函数,我的意思是我想在单元格公式本身中执行此操作,而不是在脚本中。

【问题讨论】:

  • 只能使用脚本。你要按 GID 号还是按索引号??
  • 感谢您的回复。我想要索引号,以便我可以为下一张表“+1”或为上一张表“-1”。

标签: google-apps-script indexing google-sheets reference google-sheets-formula


【解决方案1】:

脚本:

function SHEET(input) {
try {
  var sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets() ;
  if( (input>0) && (input <= sheets.length)) return sheets[(input-1)].getName() ;
  else return "invalid sheet #" ;
}
catch( err ) {
  return "#ERROR!" 
}
}

第一张表的公式:

=SHEET(1)

第五张的公式:

=SHEET(5)

等等

【讨论】:

  • 如果你想要它可拖动使用:=SHEET(ROW(A1))
  • 非常感谢!这非常接近我想要实现的目标。使用您的解决方案,我可以从其索引中获取工作表名称。但我需要的是能够设置参考上一张表的公式。当我尝试这样做时,我得到了正确的单元格文本,但它没有被解释为公式。例如,单元格的公式是 ="='"&get_sheet_name(this_sheet_index()-1)&"'!A5" 其中 get_sheet_name 是您的函数。结果是 ='Sheet1'!A5 但显示为文本并且不被解释为公式,因为它已经是第一个公式的结果。希望这足够清楚......
  • 尝试将其包装成 INDIRECT
  • 我试过:=INDIRECT(get_sheet_name(this_sheet_index()-1)&"!A5") 并得到#REF错误:INDIRECT的参数1是“Sheet1”!A5这是不正确的单元格...但是我自己在另一个单元格中输入它是否有效,所以对我来说它看起来很正确。有什么提示吗?
  • 让它工作,我在工作表名称函数中添加了引号,它不是必需的,因为它已经是一个字符串。非常感谢 player0!
猜你喜欢
  • 1970-01-01
  • 2017-07-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多