function compareColumns() {
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var sheet1 = spreadsheet.getSheetByName("rps_243_payments_datetime_since=2025-01-01&datetime_until=2025-01-01");
var sheet2 = spreadsheet.getSheetByName("deposit-report");
var sheet3 = spreadsheet.getSheetByName("Comparison"); // Output sheet
var range1 = sheet1.getRange("A2:A"); // Column A from Sheet1
var range2 = sheet2.getRange("I2:I"); // Column A from Sheet2
var values1 = range1.getValues();
var values2 = range2.getValues();
var outputRange = sheet3.getRange("B2"); // Starting cell for output in Sheet3
for (var i = 0; i < values1.length && values1[i][0] != ''; i++) {
for (var j = 0; j < values2.length && values2[i][0] != ''; ; j++)
{
if (values1[i][0] !== values2[j][0]) {
sheet3.getRange("B" + (i + 2)).setValue("Mismatch");
sheet3.getRange(i + 2, 1).setBackground("red");
}
else {
sheet3.getRange("B" + (i + 2)).setValue("Match");
sheet3.getRange(i + 2, 1).setBackground("green");
}
}
}
}
基于ID
function compareColumns() {
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var sheet1 = spreadsheet.getSheetByName("rps_243_payments_datetime_since=2025-01-01&datetime_until=2025-01-01");
var sheet2 = spreadsheet.getSheetByName("deposit-report");
var sheet3 = spreadsheet.getSheetByName("Comparison"); // Output sheet
var range1 = sheet1.getRange("A2:A"); // Column A from Sheet1
var range2 = sheet2.getRange("I2:I"); // Column I from Sheet2
var values1 = range1.getValues();
var values2 = range2.getValues();
var depositIdsArray = [];
for (var j = 0; j < values2.length; j++) {
if (values2[j][0] != '') {
depositIdsArray.push(values2[j][0]);
}
}
var output = [];
var backgroundColors = [];
for (var i = 0; i < values1.length && values1[i][0] != ''; i++) {
if (depositIdsArray.indexOf(values1[i][0]) !== -1) {
output.push(["Match"]);
backgroundColors.push(["#00FF00"]);
} else {
output.push(["Mismatch"]);
backgroundColors.push(["#FF0000"]);
}
}
sheet3.getRange(2, 2, output.length, 1).setValues(output);
sheet3.getRange(2, 1, backgroundColors.length, 1).setBackgrounds(backgroundColors);
}
我的代码比您的代码更快,但性能仍然取决于您的数据集的大小。
参考:
应用程序脚本
N2