Суммирование рабочих часов для сотрудников

В гугл таблице у меня расположен график сотрудников. Каждый лист в нём, это отдельный месяц. Начиная с третьей строки, сверху вниз, перечисляются ФИО сотрудников. На против каждого расставлены нормативные часы (сколько отработал). А в последнем столбце, на против каждого сотрудника, находится значение переработанных часов. Мне необходимо суммировать каждое значение переработанных часов за каждый месяц (со всех листов), для каждого сотрудника по отдельности и если его переработка более 120, то ставить пометку "Ошибка".

Имена сотрудников График работы сотрудников. Последний столбик переработка

К примеру, сотрудник "Котова Елена". Берём её переработки с каждого листа, суммируем и если это значение больше 120, то в последней столбик ставим пометку "Ошибка"

Буду благодарен любым вариантам.

function workHourse() {
var sheet = SpreadsheetApp.getActiveSpreadsheet();
var activeSheet = sheet.getSheets();

for(var i = 0; i < activeSheet.length; i++) {
if(!activeSheet[i].isSheetHidden()) { 

// Все данные со всех листов
  var list = activeSheet[i];
  var data = list.getDataRange();

// Объекты со значениями / не знаю, нужны ли они вообще...?
  var user = {};
  var hourse = {};

// Диапазон переработки
  var dataRows = data.getNumRows();
  var dataColumns = data.getNumColumns();
  var lastColumnList = list.getRange(6, dataColumns - 1, dataRows);

// Диапазон сотрудников
  var userData = list.getRange('C6:C');

// ФИО сотрудников и их часы
  var valuesHourse = lastColumnList.getValues();
  var valuesUser = userData.getValues();

// Прохожу циклом по каждому сотруднику и его рабочему времени
  for(var j = 0; j < valuesHourse; j++) {
    for(var k = 0; k < valuesUser; k++) {
      // Дальше я перепробовал все, что я знаю, варианты и никак не смог добиться нужного результата
    };
   };
  };
 };
};

Ответы (1 шт):

Автор решения: BotYourBiz

А чего так сложно заморачиваться и еще скрипт использовать.

По факту: Условно есть 12 страниц - это 12 таблиц на каждый месяц. ОК, здорово, все шаблонно.

Решение: Просто сделать еще одну страницу, например отчетную (или итоговую):

  1. На этой странице можно иметь столбик со всеми ФИО сотрудниками, которые можно автоматически переносить во все другие листы месячных таблиц.
  2. Вторая колонка это может быть сумма переработки собранная со всех листов-таблиц простой формулой Таблицы =SUM(Январь!Z3;Февраль!Z3;....;Декабрь!Z3)
  3. Январь!Z3 - это для примера, нужен реальный адрес ячейки.
  4. Затем размножаете эту функцию для всех ФИО в отчетном листе - и всё.
  5. Теперь, при каждом изменении в листах-таблицах каких-либо данных о часах - на отчетном листе все будет автоматически видно.

Это самый простейший вариант, но можно и усложнить и исользовать SUMIF, а если очень заморочиться то и QUERY, но смысла в этом не вижу.

→ Ссылка