Как использовать заголовок столбца для ссылки на ячейку в Google Apps Script Электронная таблица

У меня есть несколько Google Таблиц, которые я связываю и обновляю ячейки между ними. Прямо сейчас я должен использовать ссылки R1C1 или A1, чтобы определить получение или установку ячеек на основе определенных столбцов.

Если добавлен новый столбец, все эти ссылки теперь отключены.

В каждом из этих строк в заголовках столбцов содержатся значения столбцов.

Можно ли ссылаться на ячейку в формате, таком как [columnHeader] 5 для ячейки в этом столбце, пятая строка?

Я думал о том, чтобы каждый заголовок каждого столбца назывался "именованным диапазоном", но я застрял в возможности ссылаться на ячейку, используя [named range] 5.

Предположим, я мог бы использовать какой-то способ динамического определения 100 переменных для формата данных текущего столбца (R1C1) (во всех листах), а затем попытаться использовать эти переменные псевдо-заголовка в ссылках на ячейки. Но я, вероятно, буду запускать скрипты 100 раз в день, и эта ужасная неэффективность вредит мне водителю.

Спасибо заранее.

Патрон

Ответ 1

Я использую небольшую вспомогательную функцию, которая возвращает индекс столбца как число, которое я могу использовать в getRange(row,col)

Это очень просто и выглядит примерно так:

function getColByName(name){
  var headers = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet1').getDataRange().getValues().shift();
  var colindex = headers.indexOf(name);
  return colindex+1;
}

выполните следующие действия:

function testgetColByName(){
  Logger.log(getColByName('header string'));  
}