我在Google表格中有很多行,有些行是一样的。 看图片:https://tof.cx/images/2018/04/15/4cc45aff5aa8f357527731e0bae3a1bc.png
我试图清除重复的行,使其变得像下一个屏幕。 看图片:https://tof.cx/images/2018/04/15/8a16f3bb8dfcc758b649074574fafbfa.png
我在脚本编辑器中使用了这段代码,但是当我运行脚本时没有任何反应。
是否有人帮助我找到了好方法。
function removeDuplicates() {
var sheet = SpreadsheetApp.getActiveSheet();
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[0] == newData[j][0] && row[1] == newData[j][1] && row[2] == newData[j][2] && row[3] == newData[j][3] && row[4] == newData[j][4]){
duplicate = true;
}
}
if(!duplicate){
newData.push(row);
}
}
sheet.clearContents();
sheet.getRange(1, 1, newData.length, newData[0].length).setValues(newData);
}
谢谢你
答案 0 :(得分:1)
这些修改怎么样?
getDisplayValues()
代替getValues()
。
duplicate
为真,则将值添加到row
。
function removeDuplicates() {
var sheet = SpreadsheetApp.getActiveSheet();
var data = sheet.getDataRange().getDisplayValues(); // Modified
var newData = new Array();
data.forEach(function(_, i){ // Modified
var row = data[i];
var duplicate = false;
for(j in newData){
if(row[0] == newData[j][0] && row[1] == newData[j][1] && row[2] == newData[j][2] && row[3] == newData[j][3] && row[4] == newData[j][4]){
duplicate = true;
}
}
if(!duplicate){
newData.push(row);
} else {
newData.push(["", "", "", "", "", row[5], row[6]]); // Added
}
});
sheet.clearContents();
sheet.getRange(1, 1, newData.length, newData[0].length).setValues(newData);
}
如果这不是你想要的,我很抱歉。