Как то так?
function onSheetEdit(e)
{
// get the source range that was edited
var sourceRange = e.range;
// get the associated sheet
var sourceSheet = sourceRange.getSheet();
// get the sheet name
var sourceSheetName = sourceSheet.getName();
if(sourceSheetName == "Sheet1")
{
// if the range edited was one we carea bout
if(sourceRange.getA1Notation() == "A2" || sourceRange.getA1Notation() == "B2")
{
// get the values
var values = sourceSheet.getRange("A2:B2").getDisplayValues()[0];
// open the destination sheet
var destinationSheet = SpreadsheetApp.openById("1ldtZdDiml01_Drlp2WvZ3CaSgABoubauok3BcVq11eI").getSheetByName("Sheet1");
// find the column number of the column we're going to look against
var searchColumnNumber = destinationSheet.getRange("Q1").getColumn();
// get all of the values for the column
var destinationSheetColumnRValues = destinationSheet.getSheetValues(1, searchColumnNumber, -1, 1);
// find the row that has the value we want
var foundRow = destinationSheetColumnRValues.reduce(function(accumulator, currentValue, index) {
if(currentValue[0] == values[0] && accumulator == -1) return index;
return accumulator;
}, -1);
// if we found it
if(foundRow != -1)
{
// set the value in the destination sheet
destinationSheet.getRange("R" + (foundRow + 1 )).setValue(values[1]);
}
}
}
}
Вам нужно установить эту функцию как триггер on edit
на листе. Подробнее см. https://developers.google.com/apps-script/guides/triggers/events.
Этот код можно сделать более эффективным в зависимости от ситуации. Например, если столбец назначения всегда сортируется или столбец, по которому выполняется поиск, никогда не изменяется, и т. Д.