Добавить сценарий оператора if в новые строки таблицы - PullRequest
1 голос
/ 20 апреля 2020

Я пытаюсь добавить оператор if в столбец, потому что моя таблица данных добавляет строки каждый день. Мне нужно, чтобы оператор if был добавлен в новые строки, которые присоединяются к электронной таблице каждые 24 часа.

В таблице столбец C содержит дату, на которую ссылается мой оператор if.

Я пытаюсь добавить оператор if в столбце справа (в столбце Q), который сообщит мне, является ли дата в столбце C до или после сегодняшней даты. Проблема в том, что я не уверен, как добавить функцию для добавочных строк, которые добавляются в таблицу каждый день. Вот что у меня есть:

function AddFormula() {
  var spreadsheet = SpreadsheetApp.getActive();
  var column = spreadsheet.getRange('Q:Q').activate();
  var lastrow = 
  spreadsheet.getCurrentCell().setFormula('=if($C2<(today()),1,0)');
  spreadsheet.getActiveRange().autoFillToNeighbor(SpreadsheetApp.AutoFillSeries.DEFAULT_SERIES);
}

Вы можете сказать, что я полностью застрял, потому что выше есть несколько ошибок. Как можно ежедневно добавлять оператор if в активные строки вниз по столбцу Q?

Ответы [ 2 ]

2 голосов
/ 20 апреля 2020

Почему бы не использовать формулу массива в верхней строке?

=ArrayFormula(if(C2:C < TODAY(),1,0))

Чтобы ограничить диапазон, к которому применяется формула массива, вы можете использовать indirect()

=ArrayFormula(if(indirect("C2:C"&counta(C2:C)+1,1) < TODAY(),1,0))
1 голос
/ 20 апреля 2020
function AddFormula() {
  const ss=SpreadsheetApp.getActive();
  const sh=ss.getActiveSheet();
  const srg=sh.getRange(1,17).setFormula('=if($C2<(today()),1,0)');
  const drg=sh.getRange(1,17,sh.getLastRow(),1);
  srg.autoFill(drg,SpreadsheetApp.AutoFillSeries.DEFAULT_SERIES)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...