谷歌脚本删除重复行,离开最近

问题描述 投票:0回答:1

我正在使用GmailApp脚本从Gmail收集票证数据。但是,当故障单状态发生变化时,我会收到一封新电子邮件,并且我们会在新行中添加一个更新的时间戳。

我想搜索重复的票号(A)并删除旧的时间戳(J)。

我遇到的问题是oldTime实际上是最新的条目,所以没有任何反应。

13007 | B | C | D | E | F | G | H | I | 2/25/2019  
13007 | B | C | D | E | F | G | H | I | 2/26/2019  

A是票号。 B-I根据票证信息而改变。 J从电子邮件日期开始提取。

 function removeDuplicates() {
var sheet = SpreadsheetApp.getActiveSheet();
var data = sheet.getDataRange().getValues();
var newData = [];
for(i in data){
var row = data[i];
var duplicate = false;
for(j in newData){
  //If Column A in the old entry matches Column A in the new entry
  if(row[0] == newData[j][0]){
    //Pull New Timestamp and Old Timestamp
    var newTime = Date.parse(newData[j][9]);
    var oldTime = Date.parse(row[9]);
    if (newTime>oldTime) duplicate=true; // number is milliseconds in 24 hours      
  }
}
if(!duplicate){
  newData.push(row);
}
}
sheet.clearContents();
sheet.getRange(1, 1, newData.length, newData[0].length).setValues(newData);
}
date google-apps-script duplicates criteria delete-row
1个回答
0
投票

Replacing Older Rows with newer Rows

好的,这是我的数据,让我们看看它是否适用于你的数据。

function outWithTheOldInWithTheNew() {
  var sh=SpreadsheetApp.getActiveSheet();
  var eA=sh.getRange(2,1,sh.getLastRow()-1,sh.getLastColumn()).getValues();
  var tA=sh.getRange(2,1,sh.getLastRow()-1,1).getValues();
  var dA=sh.getRange(2,10,sh.getLastRow()-1,10).getValues();
  var uA=[];//ticket numbers
  var uB=[];//dates
  var uC=[];//entire rows
  for(var i=0;i<tA.length;i++) {
    var idx=uA.indexOf(tA[i][0]);
    if(idx==-1) {
      uA.push(tA[i][0]);
      uB.push(dA[i][0]);
      uC.push(eA[i]);
    }else if(new Date(dA[i][0]).valueOf() > new Date(uB[idx]).valueOf()) {
      uB.splice(idx,1,dA[i][0]);//replace newer dates
      uC.splice(idx,1,eA[i]);//replace newer rows
    }
  }
  sh.getRange(2,1,sh.getLastRow()-1,sh.getLastColumn()).clearContent();
  sh.getRange(2,1,uC.length,uC[0].length).setValues(uC);//newest rows
}

电子表格之前:

enter image description here

电子表格后:

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.