簡體   English   中英

將工作表 1 與工作表 2 進行比較並輸出至工作表 3。Google 工作表。 JavaScript

[英]Compare sheet 1 to sheet 2 and output to sheet 3. Google sheets. JavaScript

以下代碼成功地將工作表 2 的 A 列與工作表 1 的 B 列進行比較,任何匹配項都會將整行復制到工作表 3。但是,我需要對此代碼進行非常細微的更改,以便將工作表 2 的 A 列與 N 列進行比較表 1 而不是 B 列。有人可以幫我更改此代碼嗎? 這是上一篇文章的鏈接, 用於谷歌應用程序腳本的 Java 腳本優化

 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);

然而這並沒有奏效。 有任何想法嗎?

  • 您想檢索“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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM