如果匹配,则将每个单元格与另一个工作表匹配,然后使用应用程序脚本移动到新工作表

问题描述 投票:0回答:1

我有一张谷歌表格,其中有两张标签为 Sheet1 和 Sheet2 的表格。我想从第 2 行开始将 Sheet2 中的每一行和每一列与 Sheet1 进行比较。Sheet2 包含 A-F 列。与 Sheet1 相比,如果在 Sheet2 上的任何列中找到共同的单元格。我希望这一行从 Sheet2 中删除并移至 Sheet3。

例如,如果 Sheet2 中的第 56 行 D 列与 Sheet1 中的第 500 行 A 列匹配,我希望删除 sheet2 中的第 56 行并移至 Sheet3。

这是带有示例数据的电子表格

google-apps-script google-sheets
1个回答
0
投票
function myfunk() {
  const ss = SpreadsheetApp.getActive();
  const sh1 = ss.getSheetByName("Sheet1");
  const vs1 = sh1.getRange(2,1,sh1.getLastRow() - 1,sh1.getLastColumn()).getValues();
  const sh2 = ss.getSheetByName("Sheet2");
  var vs2 = sh2.getRange(2,1,sh2.getLastRow() - 1, sh2.getLastColumn()).getValues();
  let d = 0;
  let vs3 = [];
  vs1.forEach((r,i) => {
    for(let j = 0;j<r.length; j++) {
      let e = r[j]
      if(e == vs2[i][j]) {
        sh2.deleteRow(i + 2 - d++);
        vs3.push(r);
        break;
      }
    }
  });
  let sh3 = ss.getSheetByName("Sheet3");
  sh3.getRange(sh3.getLastRow() + 1, 1, vs3.length,vs3[0].length).setValues(vs3);
}
© www.soinside.com 2019 - 2024. All rights reserved.