В настоящее время я работаю над инструментом утилизации, в котором мне нужно получить продолжительность времени от первой отметки времени до следующей.
Я уже создал цикл для получения этой продолжительности. Тем не менее, у меня возникают проблемы с получением правильной логики.
function Duration() {
var spreadsheet = SpreadsheetApp.getActive();
var validation_file = SpreadsheetApp.openById("some id here");
var logged_act_sheet = validation_file.getSheetByName("Logged
Activites");
// Get the last row with data for the whole sheet.
var numRows = logged_act_sheet.getLastRow();
for(a=2; a < numRows; a++){
var ldap = logged_act_sheet.getRange('C' + a).getValue();
var ldapCount = a;
for(b=ldapCount; b < numRows; b++){
var ldap2 = logged_act_sheet.getRange('C' + b).getValue();
if(ldap == ldap2 ){
logged_act_sheet.getRange('D' + a).setFormula("=SUM(A" + b +
"-A" + a + ")");
}
}
}
};
Метка времени находится в столбце A
Имя пользователя в столбце C
Продолжительность в столбце D
Я ожидаю, что результат будет: Если C2 = пользователь 1 и C4 = пользователь 1, то D2 должен быть "= A4-A2"
Если C3 = пользователь 2 и C5 = пользователь 2, то D3 должно быть "= A5-A3". Смотрите пример данных ниже:
Это означает, что каждый раз, когда я зацикливаюсь в каждой строке, следующая строка с тем же именем пользователя из активной строки будет являться наименьшей, а вычитаемая будет активной строкой.