Скрипт для google sheets (gs/javascript)
Есть таблица
https://docs.google.com/spreadsheets/d/1Aj-dIt0r2Zv2YBs0O_dZ0usat27jICAkYSlW7t8rZ8k/edit?usp=sharing
Надо написать скрипт, который заполняет первую табличку, используя начальные данные из второй таблицы + данные из листов, созданных по шаблону.
Алгоритм примерно такой:
1) Функция вставляется в первую пустую ячейку результирующей таблицы,
2) Автоматически определяется сколько строк надо будет заполнить (столбцов всегда 3, а кол-во строк может меняться, можно добавлять и удалять счета). Определить это можно идя вниз от активной и найдя первую не пустую ячейку. Или же можно забить количество счетов константой в коде, которую легко поменять (в 1 месте).
3) Каждая ячейка из диапазона (в тестовом файле диапазон это B5:D14) заполняется по правилу:
а) Начальное значение - для ячейки B5 - это G5, для С8 I8 и тд
б) + все операции, начиная от даты, записанной в H1 до сегодняшнего числа из листов - отчетов по месяцам (ф-ия для итерации по листам описана ниже).
в) Очередная запись с очередного листа учитываяется в соответствующей валюте в счете, соответствующему записи в колонке "Счет" в каждом отдельном месяце.
В итоге будет построена таблица, учитывающая начальные данные и все операции от определенного числа.
// Код для итерации по нужным листам:
// var sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets();
// var sum = 0;
// var re = /.+\s[0-9]{4}$/
// var regExp = new RegExp(re);
// for (var i = 0; i
// var sheet = sheets;
// if (sheet.getName().match(regExp)) {
// var val = sheet.getRange("I1").getValue();
// sum += val;
// }
Просьба в заявке оставлять цену и сроки исполнения.