Є код який майже працює так як треба:
function onEdit(e) {
// Отримати активний аркуш та діапазон даних (від рядка 2 до останнього рядка у всіх стовпцях)
var activeSheet = e.source.getActiveSheet();
var range = activeSheet.getRange("A2:I" + activeSheet.getLastRow());
// Отримати номер редагованого стовпця та значення
var editedColumn = e.range.getColumn();
var editedValue = e.range.getValue();
// Сортування за стовпцем "Статус"
if (editedColumn === 2) {
// Сортувати за стовпцем "Статус", потім за відповідним стовпцем залежно від значення "Статус"
if (editedValue === "Закінчилось") {
range.sort([{column: 2, ascending: true}, {column: 7, ascending: true}]);
} else if (editedValue === "Підключена") {
range.sort([{column: 2, ascending: true}, {column: 5, ascending: true}]);
} else if (editedValue === "Повне") {
range.sort([{column: 2, ascending: true}, {column: 3, ascending: true}]);
}
}
// Сортування за стовпцем "Закінчилось"
if (editedColumn === 7 && editedValue === "Закінчилось") {
range.sort([{column: 2, ascending: true}, {column: 7, ascending: true}]);
}
// Сортування за стовпцем "Підключена"
if (editedColumn === 5 && editedValue === "Підключено") {
range.sort([{column: 2, ascending: true}, {column: 5, ascending: true}]);
}
// Сортування за стовпцем "Отримали"
if (editedColumn === 3 && editedValue === "Повна") {
range.sort([{column: 2, ascending: true}, {column: 3, ascending: true}]);
}
}
Але треба довести це все до пуття.