Google 工作表 - 比较两个 sheet 列并将不匹配的值附加到第一列
Google Sheets - Compare two sheet columns and append the unmatched values on the first column
在一个 Google sheet 工作簿中,假设我有 5 行的 Sheet1
Sheet1
我将 Sheet2 作为
Sheet2
我正在寻找将不匹配的行(在 Sheet2 中但不在 Sheet1 中的行)并将这些单元格附加到 Sheet1 中的单元格下方的东西。
工作表 1 中的预期结果:
Expected Result
在您的情况下,下面的示例脚本怎么样?
示例脚本:
function myFunction() {
const ss = SpreadsheetApp.getActiveSpreadsheet();
const [sheet1, sheet2] = ["Sheet1", "Sheet2"].map(s => ss.getSheetByName(s));
const lastRowSheet1 = sheet1.getLastRow();
const sheet1Obj = sheet1.getRange("A2:B" + lastRowSheet1).getValues().reduce((o, [a]) => (o[a] = true, o), {});
const sheet2Values = sheet2.getRange("A1:A" + sheet2.getLastRow()).getValues();
const values = sheet2Values.filter(([a]) => !sheet1Obj[a]);
if (values.length == 0) return;
sheet1.getRange(lastRowSheet1 + 1, 1, values.length, 1).setValues(values);
}
- 当此脚本为运行时,检查“Sheet1”和“Sheet2”的值。当“Sheet2”的“A”列的值不包含在“Sheet1”的“A”列的值中时,这些值将附加到“Sheet1”的“A”列。我以为这就是你期望的目标。
注:
- 如果更改sheet名称,请修改
["Sheet1", "Sheet2"]
。
参考文献:
在一个 Google sheet 工作簿中,假设我有 5 行的 Sheet1
Sheet1
我将 Sheet2 作为 Sheet2
我正在寻找将不匹配的行(在 Sheet2 中但不在 Sheet1 中的行)并将这些单元格附加到 Sheet1 中的单元格下方的东西。
工作表 1 中的预期结果: Expected Result
在您的情况下,下面的示例脚本怎么样?
示例脚本:
function myFunction() {
const ss = SpreadsheetApp.getActiveSpreadsheet();
const [sheet1, sheet2] = ["Sheet1", "Sheet2"].map(s => ss.getSheetByName(s));
const lastRowSheet1 = sheet1.getLastRow();
const sheet1Obj = sheet1.getRange("A2:B" + lastRowSheet1).getValues().reduce((o, [a]) => (o[a] = true, o), {});
const sheet2Values = sheet2.getRange("A1:A" + sheet2.getLastRow()).getValues();
const values = sheet2Values.filter(([a]) => !sheet1Obj[a]);
if (values.length == 0) return;
sheet1.getRange(lastRowSheet1 + 1, 1, values.length, 1).setValues(values);
}
- 当此脚本为运行时,检查“Sheet1”和“Sheet2”的值。当“Sheet2”的“A”列的值不包含在“Sheet1”的“A”列的值中时,这些值将附加到“Sheet1”的“A”列。我以为这就是你期望的目标。
注:
- 如果更改sheet名称,请修改
["Sheet1", "Sheet2"]
。