如果前10列重复,则删除Google Sheets行的Google脚本



我正在尝试创建一个脚本,该脚本将搜索一行中的列a:J,如果任何其他行具有相同的列,它将删除新的整行。

我有一个电子表格,它有数据将行导入电子表格的a到J列。然后我们手动将文本输入K到p列。

如果新数据导入并匹配前9列,我们只需删除新行并保留现有行。我在网上发现这个脚本运行得很好,只是它没有寻找一系列的列。相反,它看到的是整排

// [START apps_script_sheets_remove_duplicates]
/**
* Removes duplicate rows from the current sheet.
*/
function removeDuplicates() {

// [START apps_script_sheets_sheet]
var sheet = SpreadsheetApp.getActiveSheet();
var data = sheet.getDataRange().getValues();
// [END apps_script_sheets_sheet]

// [START apps_script_sheets_new_data]
var newData = [];
// [END apps_script_sheets_new_data]
for (i in data) {
var row = data[i];
var duplicate = false;
for (j in newData) {
if (row.join() == newData[j].join()) {
duplicate = true;
}
}

// [START apps_script_sheets_duplicate]
if (!duplicate) {
newData.push(row);
}
// [END apps_script_sheets_duplicate]
}

// [START apps_script_sheets_clear]
sheet.clearContents();
sheet.getRange(1, 1, newData.length, newData[0].length).setValues(newData);
// [END apps_script_sheets_clear]
}
// [END apps_script_sheets_remove_duplicates]

试试这个:参考:

var row = data[i].slice(0,10);

所以也许这对你有用:

for (i in data) {
var row = data[i];
var r10=row.slice(0,10);
var duplicate = false;
for (j in newData) {
if (r10.join() == newData[j].join()) {
duplicate = true;
}
}
// [START apps_script_sheets_duplicate]
if (!duplicate) {
newData.push(r10);
}
// [END apps_script_sheets_duplicate]
}

最新更新