按日期对重复提交进行排序

Sorting duplicate submissions by date

我有一个 Google 表单,可以将数据存入 google 电子表格。填写的第一份表格的所有数据将存放在第 1 行,然后填写的下一份表格将存放在第 2 行,依此类推。我一直遇到的一个问题是,有时人们会丢失他们的 link编辑他们提交的表格,然后他们提交一个全新的条目,在 google 表上创建一个包含更新信息的重复行。

我正在尝试制作 sheet2 以过滤掉重复的条目,但仍保持它们首次出现的顺序。我考虑过使用 UNIQUE(range) 函数,但问题是 unique 函数会在名称第一次出现时出现。我想要它做的是保留名字出现的位置,但获取名字出现的最新时间的数据,因为这将有更新的信息。我自己想不出办法来做到这一点。有哪位知识渊博的人可以帮忙吗?

以下是我希望实现的示例。 John 第一次出现的时间被最近一次出现的时间覆盖。

我认为这应该适合你。

function findCopyDeleteDupes()
{
  var ss=SpreadsheetApp.getActiveSpreadsheet();
  var sht=ss.getActiveSheet();
  var rng=sht.getDataRange();
  var rngA=rng.getValues();
  var nodupes=[];
  var dupeRows=[];
  for(var i=0;i<rngA.length;i++)
  {
    var idx=nodupes.indexOf(rngA[i][1]);
    if(idx==-1)//if not in nodupes then put it in nodupes
    {
      nodupes.push(rngA[i][1]);
    }
    else
    {
      for(var j=0;j<rngA[i].length;j++)
      {
        rngA[idx][j]=rngA[i][j];//Copy data from the latest time to the first position
      }
      dupeRows.push(i+1);//add this row to the delete rows array
    }
  }
  rng.setValues(rngA);
  for(var i=dupeRows.length-1;i>-1;i--)//delete rows from the bottom first
  {
     sht.deleteRow(dupeRows[i])
  }
}