function onEdit(e) {
var sheet = e.source.getSheetByName('Основной лист'); // Имя первого листа
var editedRange = e.range;
var editedRow = editedRange.getRow();
var targetSheet = e.source.getSheetByName('Доп лист'); // Имя второго листа
var targetDataColumns = ["Ссылка", "Данные №2", "Данные №3"]; // Список столбцов для копирования
if (sheet.getName() == 'Основной лист' && editedRow > 1) {
var editedData = sheet.getRange(editedRow, 1, 1, sheet.getLastColumn()).getValues()[0];
var targetRow = findRowByTitle(targetSheet, editedData[editedData.length - 1]);
if (targetRow === -1) {
targetRow = targetSheet.getLastRow() + 1;
}
var targetData = [];
for (var i = 0; i < targetDataColumns.length; i++) {
var columnIndex = getColumnIndex(sheet, targetDataColumns[i]);
targetData.push(editedData[columnIndex]);
}
targetSheet.getRange(targetRow, 1, 1, targetData.length).setValues([targetData]);
}
}
function findRowByTitle(sheet, title) {
var columnValues = sheet.getRange(2, sheet.getLastColumn(), sheet.getLastRow() - 1, 1).getValues();
for (var i = 0; i < columnValues.length; i++) {
if (columnValues[i][0] == title) {
return i + 2; // Смещение на 2 из-за индексации массивов и заголовка
}
}
return -1; // Если не найдено
}
function getColumnIndex(sheet, columnName) {
var headers = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues()[0];
for (var i = 0; i < headers.length; i++) {
if (headers[i] == columnName) {
return i + 1; // Смещение на 1 из-за индексации массивов
}
}
return -1; // Если не найдено
}