Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script 从上到下删除重复项的Google脚本_Google Apps Script_Google Sheets - Fatal编程技术网

Google apps script 从上到下删除重复项的Google脚本

Google apps script 从上到下删除重复项的Google脚本,google-apps-script,google-sheets,Google Apps Script,Google Sheets,我有一个脚本,它结合了三个脚本来执行以下操作: 1) 将行从一个选项卡插入到另一个选项卡的顶部 2) 从刚刚添加数据的选项卡中删除重复项 3) 清除刚从中移植数据的旧选项卡 对于重复数据消除脚本,它从底部开始删除行,然后向上删除行。所以我已经建立并删除了现有的数据。我需要它做的是从顶部开始,然后向下。因此,如果发现从第一个脚本移植过来的新行记录是重复的,它应该删除这些记录 如何让重复数据消除脚本以相反的方式进行处理 我确实在下面的链接中找到了反向逻辑,但我找不到一种方法使它与我的脚本一起工作并不

我有一个脚本,它结合了三个脚本来执行以下操作:

1) 将行从一个选项卡插入到另一个选项卡的顶部 2) 从刚刚添加数据的选项卡中删除重复项 3) 清除刚从中移植数据的旧选项卡

对于重复数据消除脚本,它从底部开始删除行,然后向上删除行。所以我已经建立并删除了现有的数据。我需要它做的是从顶部开始,然后向下。因此,如果发现从第一个脚本移植过来的新行记录是重复的,它应该删除这些记录

如何让重复数据消除脚本以相反的方式进行处理

我确实在下面的链接中找到了反向逻辑,但我找不到一种方法使它与我的脚本一起工作并不断出错。我也不确定这是否是适合我整个脚本的最佳方法

链接:

如果发现工作表顶部的新行重复,请删除顶部的新行。

尝试以下操作:

function removeDuplicates() {
  var sheet=SpreadsheetApp.getActiveSheet();
  var rows=sheet.getLastRow();
  var firstColumn=sheet.getRange(1, 2, rows, 1).getValues();
  firstColumn = firstColumn.map(function(e){return e[0]})
  var uA=[];
  for (var i=rows;i>0;i--) {
    if (uA.indexOf(firstColumn[i-1])!=-1) {
      sheet.deleteRow(i);
    }else{
      uA.push(firstColumn[i-1]);
    }
  }
}

谢谢你的意见。运行后,它似乎没有删除任何重复项,尽管运行时我没有收到任何错误。我只是更改了它,然后再试一次。很高兴帮助您。
function removeDuplicates() {
  var sheet=SpreadsheetApp.getActiveSheet();
  var rows=sheet.getLastRow();
  var firstColumn=sheet.getRange(1, 2, rows, 1).getValues();
  firstColumn = firstColumn.map(function(e){return e[0]})
  var uA=[];
  for (var i=rows;i>0;i--) {
    if (uA.indexOf(firstColumn[i-1])!=-1) {
      sheet.deleteRow(i);
    }else{
      uA.push(firstColumn[i-1]);
    }
  }
}