У меня есть таблица гугл. В ней 2 листа. В первом листе данные регулярно меняются. Есть список участков (это неизменяемые данные), дальше к участку может быть прикреплен человек, и есть дата начала и дата завершения работ (это изменяемые данные). Участок может прорабатываться разными людьми в разные даты. Поэтому есть необходимость вести своего рода журнал учета, когда и кем брался определенный участок. Второй лист должен служить как журнал записи.
Нужно сделать так, чтобы когда по определенному участку добавлялся человек + добавлялась дата начала и завершения работ, тогда эти данные (вместе с номером участка) переносились на второй лист. И вставлялись в последнюю пустую ячейку. И так до бесконечности. Просто журнал записей.
Этим скриптом я получил доступ к листу 1 и 2, получил данные из активных ячеек листа 1. И перенес их на лист 2.
function addToDatabase(){
var list1 = SpreadsheetApp.getActiveSpreadsheet(); //лист откуда берем данные
var activCell = list1.getActiveSheet().getActiveCell(); //определение ячейки на которой сейчас находится курсор
var activNum = activCell.getRow(); //номер активной ячейки
var number = list1.getActiveSheet().getRange(activNum, 1).getValue(); // номер участка
var name = list1.getActiveSheet().getRange(activNum, 2).getValue(); // имя человека
var date1 = list1.getActiveSheet().getRange(activNum, 4).getValue(); // дата начала работ
var date2 = list1.getActiveSheet().getRange(activNum, 6).getValue(); // дата завершения работ
var activColumn = list1.getActiveSheet().getActiveCell().getColumn(); //номер активного столбца
var list2 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Журнал вода данных"); //лист куда вставляем данные
var lastEmptyRow = list2.getLastRow() + 1; //разбивка куда какие данные вставлять
list2.getRange(lastEmptyRow, 1).setValue(number); // вставить номер
list2.getRange(lastEmptyRow, 2).setValue(name); // вставить имя
var lastEmptyRow = list2.getLastRow() + 1; //разбивка куда какие данные вставлять
list2.getRange(lastEmptyRow, 1).setValue(number); // вставить номер
list2.getRange(lastEmptyRow, 2).setValue(date1); // вставить дату начала работ
list2.getRange(lastEmptyRow, 3).setValue(date2); // вставить дату завершения работ
}
Дальше я хочу поставить запуск этого скрипта при изменении. Но чтобы он не переносил данные каждый раз при изменении каждой ячейки, нужно сделать так, чтобы данные переносились только если заполнены все поля для переноса.
То есть если в строке 2 заполнен и номер, и имя, и дата начала, и дата завершения, тогда скрипт переносит данные из этой строки на лист 2.
Точно также и для остальных участков. Если в строке 3 заполнен и номер, и имя, и дата начала, и дата завершения, тогда скрипт переносит данные из этой строки на лист 2 и т.д
Если какая-то из ячеек (номер, имя, дата начала, дата завершения) не заполнена, тогда данные из этой строки не переносятся.
Мне посоветовали сделать проверку на не пустую ячейку.
Подскажите, пожалуйста, как написать такую проверку?