У меня есть электронная таблица Google с данными расписания; у него есть лист на каждый месяц, каждый лист состоит из шести блоков столбцов, по одному блоку на клиента.
Я создал сводную таблицу, которая собирает итоговые данные для каждого клиента и отображает их в виде списка:
function getClientTotals(sheetname, colcount)
{
colcount = colcount ? colcount : 6;
var res;
var ss = SpreadsheetApp.openById('myid_goes_here');
if(ss)
{
res = [];
var totrow = ss.getRange(sheetname + '!A1:ZZ1').getValues()[0];
for(var i = 0; i < totrow.length; i += colcount)
{
res.push([totrow[i], totrow[i + colcount - 1]]);
}
}
return res;
}
Затем я только что добавил в свой сводный лист ячейку, содержащую = getClientTotals ($ C $ 7, $ C $ 8)
, который передает имя листа за месяц и количество столбцов для каждого клиента (в случае модификаций "схемы".
Все это работает нормально, однако не обновляется, когда источник данные изменены. Я добавил триггер onEdit
; ничего страшного. Он обновится, если вы войдете в редактор сценариев и нажмете «Сохранить», но это бесполезно. Я что-то упустил?