Вам не хватает привередливой функции кэширования bug . Это работает так:
Google считает, что все ваши пользовательские функции зависят только от значений своих параметров напрямую, чтобы вернуть их результат (вы можете опционально зависеть от других статических данных).
Учитывая это предварительное условие, они могут оценивать ваши функции только при изменении параметра. например,
Предположим, у нас есть текст «10» в ячейке B1, затем в другой ячейке мы набираем =myFunction(B1)
myFunction будет оценена и ее результат будет получен. Затем, если вы измените значение ячейки B1 на «35», пользовательский будет переоценен, как ожидается, и новый результат будет получен в обычном режиме.
Теперь, если вы снова измените ячейку B1 на исходную «10», переоценка не производится, исходный результат немедленно извлекается из кэша.
Итак, когда вы используете имя листа в качестве параметра для его динамического извлечения и возврата результата, вы нарушаете правило кэширования.
К сожалению, у вас не может быть пользовательских функций без этой удивительной функции. Поэтому вам придется либо изменить его, чтобы получать значения напрямую, а не имя листа, либо не использовать пользовательскую функцию. Например, в вашем скрипте может быть параметр, указывающий, куда должны идти сводки, и onEdit
обновляет их при изменении общей суммы.