【发布时间】:2015-07-27 19:58:03
【问题描述】:
我有一个脚本,它仅将其中一个匹配行的值设置为 True。同一个电子表格中有两张工作表。我让脚本检查一张与另一张的匹配值。问题是它只将 True 放在最后一个匹配值旁边,而不是所有不同的匹配值。我如何让它找到所有可能的重复项并将 True 放在每个重复项旁边。它正在寻找的值实际上是注册码;如果有人取消注册,他们输入他们的注册码,它将与他们在注册表中的注册行匹配。
function findDuplicates() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheetR = ss.getSheetByName("Registration");
var sheetCR = ss.getSheetByName("Cancel Registration")
var dataR = sheetR.getDataRange().getValues();
var dataCR = sheetCR.getDataRange().getValues();
var newData = new Array();
var headerRow = 1;
for (var i = 1; i < dataR.length && i < dataCR.length; ++i) {
var rowR = dataR[i];
var rowCR = dataCR[i];
var duplicate = false;
if (rowR[9] === rowCR[8]) {
duplicate = true;
}
}
if (duplicate = true) {
sheetR.getRange(headerRow + i, 11).setValue("True");
}
}
更新代码:
function findDuplicates() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheetR = ss.getSheetByName("Registration");
var sheetCR = ss.getSheetByName("Cancel Registration")
var dataR = sheetR.getDataRange().getValues();
var dataCR = sheetCR.getDataRange().getValues();
var headerRow = 1;
for (var i = 1; i < dataR.length && i < dataCR.length; i++) {
var rowR = dataR[i];
var rowCR = dataCR[i];
var duplicate = false;
if (rowR[9] === rowCR[8]) {
duplicate = true;
}
if (duplicate === true) {
sheetR.getRange(headerRow + i, 11).setValue("True");
}
}
}
更新:
function findDuplicates() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheetR = ss.getSheetByName("Registration");
var sheetCR = ss.getSheetByName("Cancel Registration")
var dataR = sheetR.getDataRange().getValues();
var dataCR = sheetCR.getDataRange().getValues();
var headerRow = 1;
for (var i = 1; i < dataR.length; i++) {
for (var j = 1; j < dataCR.length; j++) {
var rowR = dataR[i];
var rowCR = dataCR[j];
var duplicate = false;
if (rowR[9] === rowCR[8]) {
duplicate = true;
}
if (duplicate === true) {
sheetR.getRange(headerRow + i, 11).setValue("Y");
}
}
}
}
【问题讨论】:
标签: google-apps-script google-sheets