Как я могу принудительно пересчитать ячейку с помощью функции ImportRange в электронной таблице Google?
У меня есть цель электронной таблицы, которая использует ImportRange для получения данных из другого источника электронной таблицы, как в
A6 = query(ImportRange("mykey", "Weekly!B:BI"), CONCATENATE("select * WHERE Col1='",B3,"'"), 0)
Предложение select предназначено для дополнительного выбора данных, которые соответствуют значению в B3 - если это значение ячейки изменяется, то импорт обновляется ".немедленно".
Я хочу иметь возможность принудительного обновления, если кто-то что-то изменит в электронной таблице Source, чтобы мы увидели, что это отражено в Target "немедленно", В настоящее время это только происходит "по истечении некоторого неопределенного времени что до минуты или около того, и слишком медленно для моих целей.
Обновить:
Согласно ответу и комментариям ниже, я добавил функцию UpdateTarget в Source, которая вызывается из триггера на редактирование *:
function UpdateTarget() {
try {
var ss = SpreadsheetApp.openById("targetID");
}
catch(err)
{
Browser.msgBox(err);
}
var sheet = ss.getSheetByName("Weekly");
sheet.getRange("A4").setValue("=query(ImportRange("sourceID", "Weekly!B:BI"), CONCATENATE("select * WHERE Col1='",B3,"'"), 0) ");
SpreadsheetApp.flush();
}
Кажется, это работает более эффективно, но у меня также может быть скрипт для записи обновленных значений непосредственно в цель, если я 'Я иду по этому маршруту.
Я действительно хотел, чтобы Target был шаблоном, который другие пользователи могли бы дублировать и который извлек бы конкретную информацию ».жить" Данные из основного источника, я неохотно для реализации сценариев в источнике, которые необходимо будет поддерживать при добавлении новых целей.
Я думаю, что мне действительно нужен способ переформулировать формулу так, чтобы она зависела от ячейки, которая может быть отредактирована и вызовет пересчет - но это никак не повлияет на результат?
(* В сторону: я обнаружил, что функция openByID вернула "Действие не допускается исключение, если оно не вызвано с помощью явного триггера - onEdit запрещено редактировать другие таблицы -seehttps://developers.google.com/apps-script/understanding_triggers).