У меня есть скрипт, который отправляет данные с одного листа на другой, а затем восстанавливает данные.Сценарий дедупликации, по-видимому, только дедуплицирует НЕКОТОРЫЕ данные.Например, строки 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);
}
Я ожидал, что будут опубликованы новые данные, будет проверен весь спектр данных на наличие дубликатов, а новые данные будут опубликованы сценарием.подлежит удалению в случае обнаружения дубликата.