Как составить список или индексировать все листы / вкладки в Google Sheets с помощью формул (без сценариев) - PullRequest
2 голосов
/ 20 июня 2019

У меня есть документы Google Sheets с несколькими вкладками, которые время от времени меняют свои позиции или добавляют новые вкладки. Есть ли способ создать индекс столбца с формулами
( без сценариев ) для столбца? Из-за ограничений работы (политики безопасности и подключения и рекомендации для нескольких пользователей) сценарии не могут быть реализованы.

Я добавляю ссылки для решения сценариев для тех, кто может искать это и может использовать их:

Существует ли формула Google Sheets для помещения имени листа в ячейку?

Как динамически ссылаться на несколько листов в Google SpreadSheets?

1 Ответ

2 голосов
/ 20 июня 2019

без сценария, это не возможно.

___________________________________________________________

решение на основе сценария будет:

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!" 
}
}

и формула, возвращающая 2-й лист слева:

=SHEET(2)
...