我在sheet1的A列中有唯一的ID('ID1'),我需要将它与Sheet2的ID为'ID2'的B列进行比较。
因此,我需要比较ID的ID,并检查其中是否匹配,是否要更改与sheet1中“ ID1”相同的行中单元格的值,但在另一列中,说C。 >
function IDValidation() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet1 = ss.getSheetByName('Sheet1');
var sheet2 = ss.getSheetByName("Sheet2");
var Sheet1range = sheet1.getRange(2,1,sheet1.getLastRow()); //header is row 1
var Sheet2range = sheet2.getRange(2, 2); //header is row 1
var Sheet1cellValue = Sheet1range.getValues();
var Sheet2cellValue = Sheet2range.getValues();//Look here
for(i = 0; i<Sheet1cellValue .length-1; i++){
if(Sheet1cellValue [i][0] == Sheet2cellValue)
{
ss.getSheetByName("Sheet1").getRange(i+2,3).setValue("Close");
}
}
}
答案 0 :(得分:0)
这里有一些选择。
尝试一下:
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");
}
}
}
Sheet1
Sheet2
这似乎可行。是/否?
我不知道,也许您正在寻找Sheet1 Column1和Sheet2 Column2之间的所有匹配项。这就是该功能的作用。我使用的是0到50之间的随机数,而不是唯一的ID,因此有很多匹配项。我不再将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]));
}
}
}
}
运行后,这里是Sheet1:
这是Sheet2 :(我选择了太多行,无法将它们全部显示在屏幕上)
答案 1 :(得分:0)
我认为您对所有内容都非常了解,因为您的代码是解决我的问题的方法:)我仅在行'10'-1中添加了长度,不计入sheet2中最后一行为空的长度。当然,我将更改setValue。谢谢大家。
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-1;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]));
}
}
}
}