Сравните лист 1 с листом 2 и выходные данные с листом 3. Листы Google. JavaScript - PullRequest
0 голосов
/ 31 марта 2020

Следующий код успешно работает для сравнения столбца A листа 2 с столбцом B листа 1, любые совпадения будут копировать всю строку на лист 3. Однако мне нужно очень небольшое изменение этого кода, который сравнивает столбец A листа 2 в столбец N листа 1 вместо столбца B. Может ли кто-нибудь помочь мне с этим изменением кода? Вот ссылка на предыдущий пост Java оптимизация скрипта для скрипта приложений Google

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

Однако это не сработало. Есть идеи?

1 Ответ

1 голос
/ 01 апреля 2020
  • Требуется получить значения «Лист1» и «Лист2».
  • Требуется сравнить столбец «N» для «Лист1» и столбец «А» для «Лист2» , Если значения столбца «N» для «Sheet1» и столбца «A» для «Sheet2» совпадают, вы хотите извлечь строку «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);

Если я неправильно понял ваш вопрос, а это не тот результат, которого вы хотите, я приношу свои извинения.

...