Не уверен, что вы хотите, но просто пытаюсь помочь
Вот несколько вариантов.
Попробуйте:
function IDValidation() {
var ss=SpreadsheetApp.getActiveSpreadsheet();
var sh1=ss.getSheetByName('Sheet1');
var sh2=ss.getSheetByName("Sheet2");
var sh1rg=sh1.getRange(2,1,sh1.getLastRow()); //header is row 1
var sh2rg=sh2.getRange(2,2);//header is row 1
var sh1cvA=sh1rg.getValues();
var sh2cV=sh2rg.getValue();//look here
for(var i=0;i<sh1cvA.length-1; i++){
if(sh1cvA[i][0]==sh2cV){
sh1.getRange(i+2,3).setValue("Close");
}
}
}
Лист1
Лист2
Кажется, что работает.Да / Нет?
Не знаю, возможно, вы ищете все совпадения между Sheet1 Column1 и Sheet2 Column2.Вот что делает эта функция.Я использую случайные числа от 0 до 50, а не уникальные идентификаторы, поэтому есть много совпадений.Я перестал вставлять close
в колонку 3 и начал описывать, где совпадения.
Вот код:
function IDValidation1() {
var ss=SpreadsheetApp.getActiveSpreadsheet();
var sh1=ss.getSheetByName('Sheet1');
var sh2=ss.getSheetByName("Sheet2");
var sh1rg=sh1.getRange(2,1,sh1.getLastRow(),1); //header is row 1
var sh2rg=sh2.getRange(2,2,sh2.getLastRow(),1);//header is row 1
var sh1cvA=sh1rg.getValues();
var sh2cvA=sh2rg.getValues();
for(var i=0;i<sh1cvA.length-1; i++){
for(var j=0;j<sh2cvA.length;j++) {
if(sh1cvA[i][0]==sh2cvA[j][0]){
sh1.getRange(i+2,3).setValue(Utilities.formatString('Sheet2 Row:%s == Sheet1 Row:%s = %s',j+2,i+2,sh1cvA[i][0]));
}
}
}
}
Вот лист1 После запуска:
А это Sheet2: (я выбрал слишком много строк и не смог уместить их все на моем экране)