删除Google表格中的重复行

过度

我在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);
}

谢谢

Tanaike

这些修改如何?

修改要点:

  • 使用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);
}

参考文献:

如果这不是您想要的,对不起。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章