如何将所有唯一行从SOURCE电子表格复制/附加到DESTINATION电子表格。
- 电子表格#1(SOURCE(-包含ID和名称。此工作表有重复的行。500k行以上(访问:仅限视图(
- 电子表格#2(目的地(-仅包含带名称的唯一ID。(访问:编辑(
此脚本有效,但它复制了所有内容(包括重复内容(。
function transferIDs() {
var sss = SpreadsheetApp.openById('%'); //SOURCE
var ss = sss.getSheetByName('Sheet1');
var SRange = ss.getDataRange();
var A1Range = SRange.getA1Notation();
var SData = SRange.getValues();
var dss = SpreadsheetApp.openById('#'); //DESTINATION
var ds = dss.getSheetByName('Sheet1');
ds.clear({contentsOnly: true});
ds.getRange(A1Range).setValues(SData);
}
电子表格#1 SOURCE(包含重复行(
A | B |
---|---|
ID | 名称 |
X123456 | 约翰 |
Y112233 | Sarah |
X9988877 | 阿曼达 |
012344 | 鲍勃 |
X9988877 | 阿曼达 |
使用带集合的过滤器:
将SData
更改为
const SData = SRange.getValues().filter(
(set => row => set.has(row[0]) ? false : set.add(row[0]))(new Set)
);
并修改目的地范围:
ds.getRange(1,1,SData.length,SData[0].length).setValues(SData);