С программирование на Google apps script знаком очень поверхностно, на основе своих знаний написал такой код (сразу скажу работает не корректно):
function ResponseTime(){
var sheet = SpreadsheetApp.getActiveSpreadsheet();
var sheetName = SpreadsheetApp.getActiveSpreadsheet().getSheetName();
var range = sheet.getActiveRange();
var data = range.getValues();
if(sheetName == "Вопросник" && range.getColumn() == 17){
for (var i=0;i < data.length;i++){
if (data[i][0]>0) {
(data[i][0])=Date.parse(data[i][0]);
var time1 = (data[i][0])}
else {
}
}
}
if(sheetName == "Вопросник" && range.getColumn() == 18){
for (var i=0;i < data.length;i++){
if (data[i][0]>0) {
(data[i][0])=Date.parse(data[i][0]);
var time2 = (data[i][0])}
else {
}
}
for (var i=0;i < data.length;i++){
if (data[i][0]>0 && time2>0) {
let date = new Date(time2);
range.offset(i,+1,1,1).setValue(date.getHours()+':'+date.getMinutes());}
else {
}
}
}
}
У меня в таблице в столбцах 17 и 18 идут две даты, как рассчитать разницу между ними особо не нашел, поэтому решил сначала из обеих ячеек получить таймстамп с помощью Date.parse(str), далее уже найти разницу в миллисекундах и преобразовать ее в "часы:минуты". Но в итоге что планировал, получить не удалось. Я так понимаю основная проблема с методом .getColumn() он позволяет работать с определенным диапазоном, то есть только с одним столбцом и мне не подходит. Подскажите на какой метод его заменить? и также я предполагаю что много лишнего написал в коде, может его как-то можно упростить, что-то выбросить? Возможно я изначально пошел не по тому пути и все можно реализовать намного проще? Буду рад любым предложениям.