【发布时间】:2019-04-11 04:47:00
【问题描述】:
我有一个脚本,可以将数据从一张表发布到另一张表,然后对数据进行重复数据删除。重复数据删除脚本似乎只对部分数据进行重复数据删除。例如,第 2-13 行仍然是重复的,而第 35 行之后的行被重复数据删除。顶部的行是从插入脚本发布的。
我怎样才能得到脚本:
a) 对所有数据进行重复数据删除。
b) 删除从插入脚本发布的新重复行,而不是已经存在的行。
我尝试设置要检查的工作表的整个范围,但这似乎会干扰发布到新数据。这是我设法找到/开发的最简单的脚本。
function Run(){
insert();
dedupe();
}
function insert() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var source = ss.getSheetByName('Candidate Refresh'); // change here
var des = ss.getSheetByName('Candidate Listing'); // change here
var sv = source
.getDataRange()
.getValues();
sv.shift();
des.insertRowsAfter(1, sv.length);
des.getRange(2, 1, sv.length, source.getLastColumn()).setValues(sv);
}
function dedupe() {
var sheet = SpreadsheetApp.getActive().getSheetByName('Candidate Listing');
var data = sheet.getDataRange().getValues();
var newData = new Array();
for(i in data){
var row = data[i];
var duplicate = false;
for(j in newData){
if(row.join() == newData[j].join()){
duplicate = true;
}
}
if(!duplicate){
newData.push(row);
}
}
sheet.clearContents();
sheet.getRange(1, 1, newData.length,
newData[0].length).setValues(newData);
}
我希望发布新数据,检查所有数据是否重复,如果发现重复,脚本发布的新数据将被删除。
【问题讨论】:
-
您能否提供一个示例电子表格来复制您的问题?
-
@Tanaike 你可以在这里找到示例表:docs.google.com/spreadsheets/d/… 出于某种原因,我无法在我的个人 Google 帐户下打开脚本编辑器。如果您无法打开它来粘贴脚本,请告诉我。
-
感谢您回复并提供示例电子表格。不幸的是,我无法复制您的问题。而且我也找不到
Candidate Refresh的表格。您能否提供复制问题的详细流程? -
不应该
Candidate Refresh是Candidate Research吗?重复数据删除对我有用。 -
确保在插入后和重复数据删除前刷新...
标签: google-apps-script google-sheets google-apps-script-editor