Подтвердить что ты не робот

Как заставить новые таблицы Google обновляться и пересчитываться?

Для этой цели были написаны коды, но с новыми надстройками они больше не применимы.

Спасибо заранее, Идо

4b9b3361

Ответ 1

Файл → Настройки электронной таблицы → (вкладка) Расчет → Пересчет (3 варианта)
- Об изменении
- О смене и каждую минуту
- О смене и каждый час
Это влияет на то, как часто обновляются СЕЙЧАС, СЕГОДНЯ, RAND и RANDBETWEEN.

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

из моего примера
Я использую электронную таблицу google, чтобы узнать возраст человека. У меня есть дата его рождения в формате (dd.mm.yyyy) → это используемый формат здесь, в Швейцарии.

=ARRAYFORMULA(IF(ISTEXT(K4:K), IF(TODAY() - DATE(YEAR(TODAY()), MONTH(REGEXREPLACE(K4:K, "[.]", "/")), DAY(REGEXREPLACE(K4:K, "[.]", "/"))) > 0, YEAR(TODAY()) - YEAR(REGEXREPLACE(K4:K, "[.]", "/")) + 1, YEAR(TODAY()) - YEAR(REGEXREPLACE(K4:K, "[.]", "/"))), IF(LEN(K4:K) > 0, IF(TODAY() - DATE(YEAR(TODAY()), MONTH(K4:K), DAY(K4:K)) > 0, YEAR(TODAY()) - YEAR(K4:K) + 1, YEAR(TODAY()) - YEAR(K4:K)), "")))

Я использую TODAY(), и я сделал настройки перерасчета, описанные выше. → но без автоматического обновления.:-(
Он обновляется только в том случае, если я изменяю какое-то значение внутри диапазонов, в которых функция ищет.

Поэтому для этой цели я написал Google Script (Tools → Script Editor..).

function onOpen() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheetMaster = ss.getSheetByName("Master"); 
  var sortRange = sheetMaster.getRange(firstRow, firstColumn, lastRow, lastColumn);  

  sortRange.getCell(1, 2).setValue(sortRange.getCell(1, 2).getValue());
}

Вам нужно установить числа для firstRow, firstColumn, lastRow, lastColumn

Script активируется, когда электронные таблицы открываются, снова записывает содержимое одной ячейки в одну ячейку. Этого достаточно, чтобы вызвать функцию TODAY().

Ищите дополнительную информацию по этой ссылке от Эдварда Моффетта. Формула форматирования google для пересчета

С уважением,
Christoph

Ответ 2

Что мне помогло, так это вставка столбца перед первым столбцом и его немедленное удаление. По сути, внесите изменения, которые повлияют на все ячейки в рабочей таблице, что приведет к пересчету.

Ответ 3

Старый вопрос... тем не менее, просто добавьте флажок где-нибудь на листе. Установка или снятие отметки обновит формулы ячеек.