【问题标题】:Compare sheet 1 to sheet 2 and output to sheet 3. Google sheets. JavaScript比较表 1 和表 2 并输出到表 3。谷歌表。 JavaScript
【发布时间】:2020-03-31 13:38:26
【问题描述】:

以下代码成功地将工作表 2 的 A 列与工作表 1 的 B 列进行比较,任何匹配项都会将整行复制到工作表 3。但是我需要对比较工作表 2 的 A 列的代码进行非常轻微的更改到表 1 的 N 列而不是 B 列。有人可以帮助我更改此代码吗? 这是上一篇文章的链接Java script optimization for a google apps script

 function copyRowtoSheet3() {
  var spreadsheetId = "1Aw11LiKzyezfrTQIuTsJPhUFtz8RPqLCc8FlIiy0ZlE";
  var ss = SpreadsheetApp.openById(spreadsheetId);
  var s1 = ss.getSheetByName('Sheet1');
  var s2 = ss.getSheetByName('Sheet2');
  // 1. Retrieve values from "Sheet1" and "Sheet2",
  var values1 = s1.getDataRange().getValues();
  var values2 = s2.getRange(1, 1, s2.getLastRow(), 1).getValues();

  // 2. Create an object using values2.
  var obj = values2.reduce((o, [e]) => {
    o[e] = null;
    return o;
  }, {});

  // 3. Create resultArray using values1 and obj.
  var resultArray = values1.filter(([,b]) => b in obj);

  // 4. Put resultArray to Sheet3.
  Sheets.Spreadsheets.Values.update({values: resultArray}, spreadsheetId, "Sheet3", {valueInputOption: "USER_ENTERED"});
}

我尝试的是:

var resultArray = values1.filter(([,n]) => n in obj);

然而这并没有奏效。有什么想法吗?

【问题讨论】:

    标签: javascript google-apps-script google-sheets google-sheets-api


    【解决方案1】:
    • 您想要检索“Sheet1”和“Sheet2”的值。
    • 您想要比较“Sheet1”的“N”列和“Sheet2”的“A”列。当“Sheet1”的“N”列和“Sheet2”的“A”列的值相同时,要检索“Sheet1”的行并放入“Sheet3”。
    • 您想通过修改脚本来实现。

    修改点:

    • var resultArray = values1.filter(([,b]) => b in obj); 已修改。在您当前的脚本中,比较来自[,b] 的“B”列。

    修改脚本:

    当你的脚本被修改时,请进行如下修改。

    从:
    var resultArray = values1.filter(([,b]) => b in obj);
    
    到:
    var resultArray = values1.filter(b => b[13] in obj);
    

    【讨论】:

    • 这正是我想要的。感谢您的扩展帮助!一直很感激。
    • @Garrett Kidd 感谢您的回复。很高兴您的问题得到解决。
    猜你喜欢
    • 1970-01-01
    • 2015-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多