我是 Google 脚本新手,需要创建一个脚本。我找到了这个question https://stackoverflow.com/questions/22008331/google-script-delete-row-if-a-value-in-it-exists-in-another-sheet,如果其中的值存在于另一个工作表中,他应该删除其中的行。现在,我的情况不同了。这是我的样本电子表格 https://docs.google.com/spreadsheets/d/1RlQTLZyPLasoJGplKemKg9qgcLcvCZZ_tPn6lWXEePw/edit?pli=1#gid=0。在那个 Google 电子表格中,我有 3 张表。将在前两张纸上进行比较的唯一值是第一列“ID NUMBER”。
给定值,784 | John Steep | I.T Department
存在于前 2 个工作表中,因此应将整行复制到工作表 3 中。
总而言之,如果该 ID 号存在于 Sheet 1 和 Sheet 2 中,则应将其复制到 Sheet 3 上。
我尝试修改脚本,但无法使其工作:
function copyRowtoSheet3() {
var s1 = SpreadsheetApp.openById("1RlQTLZyPLasoJGplKemKg9qgcLcvCZZ_tPn6lWXEePw").getSheetByName('Sheet1');
var s2 = SpreadsheetApp.openById("1RlQTLZyPLasoJGplKemKg9qgcLcvCZZ_tPn6lWXEePw").getSheetByName('Sheet2');
var s3 = SpreadsheetApp.openById("1RlQTLZyPLasoJGplKemKg9qgcLcvCZZ_tPn6lWXEePw").getSheetByName('Sheet3');
var values1 = s1.getDataRange().getValues();
var values2 = s2.getDataRange().getValues();
var resultArray = [];
for(var n in values1){
var keep = true
for(var p in values2){
if( values1[n][0] == values2[p][0] && values1[n][1] == values2[p][1]){
keep=false ; break ;
}
}
if(keep){
resultArray.push(values1[n])};
}
s1.clear()
s1.getRange(1,1,resultArray.length,resultArray[0].length).setValues(resultArray);
}
谢谢。非常感谢任何帮助/建议。
不确定您的条件是否有效...获取两张表中相等的值比您引用的示例更容易,只需将数据保留在 equal==true 的位置即可。
尝试这样(将 ID 更改为您的 ID):
function copyRowtoSheet3() {
var s1 = SpreadsheetApp.openById("1x8buwr______w7MeqZAiJJIX0yC-oITBAtykBAM").getSheetByName('Sheet1');
var s2 = SpreadsheetApp.openById("1x8buwr______w7MeqZAiJJIX0yC-oITBAtykBAM").getSheetByName('Sheet2');
var s3 = SpreadsheetApp.openById("1x8buwr______w7MeqZAiJJIX0yC-oITBAtykBAM").getSheetByName('Sheet3');
var values1 = s1.getDataRange().getValues();
var values2 = s2.getDataRange().getValues();
var resultArray = [];
for(var n=0; n < values1.length ; n++){
var keep = false;
for(var p=0; p < values2.length ; p++){
Logger.log(values1[n][0]+' =? '+values2[p][0]);
if( values1[n][0] == values2[p][0] && values1[n][1] == values2[p][1]){
resultArray.push(values1[n]);
Logger.log('true');
break ;// remove this if values are not unique and you want to keep all occurrences...
}
}
}
s3.getRange(+1,1,resultArray.length,resultArray[0].length).setValues(resultArray);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)