如何使用公式(无脚本)列出或列出Google表格中的所有表格/标签

时间:2019-06-20 16:06:41

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

我有一个带有多个标签的Google表格文档,这些标签经常会重新排列其位置或在其中添加新的标签。是否可以使用列上的公式
没有脚本)来创建选项卡索引?由于工作限制(针对多个用户的安全和连接策略以及指南),无法实施脚本。

我正在为可能正在寻找并可以使用它们的任何人添加脚本解决方案的链接:

Is there a Google Sheets formula to put the name of the sheet into a cell?

How do I dynamically reference multiple sheets on Google SpreadSheets?

1 个答案:

答案 0 :(得分:2)

没有脚本,不可能

___________________________________________________________

脚本化的解决方案是:

function SHEETLIST() {
try {
  var sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets()
  var out = new Array( sheets.length+1 ) ;
  out[0] = [ "NAME" , "#GID" ];
  for (var i = 1 ; i < sheets.length+1 ; i++ ) out[i] = 
  [sheets[i-1].getName() , sheets[i-1].getSheetId() ];
  return out
}
catch( err ) {
  return "#ERROR!" 
}
}

,然后在某些单元格中添加公式:

=SHEETLIST()

对于工作单订单,应为:

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(2)