2017-07-22 16 views
0

私はGoogleスプレッドシートにデータを保存するGoogleフォームを持っています。記入された最初の書式のデータはすべて行1に記入され、記入された次の記入フォームは2行目に記入されます。問題は、提出された書式を編集するためにリンクを失うことがあることです更新された情報を含むGoogleシートに重複した行を作成する全く新しいエントリを提出します。日付別に重複投稿を並べ替える

重複したエントリを除外しても、最初に出現した順序を維持するsheet2を作成しようとしています。私はUNIQUE(range)関数を使用すると考えましたが、問題は、名前が最初に表示されるときに一意の関数が使用されることです。私がしたいのは、最初の名前が現れる位置を保持することですが、更新された情報を持つので名前が現れる最新の時刻のデータを取得します。私は自分でこれを行う方法を見つけることができません。助けることができる知識のある人はいますか?

以下は、私が達成したいと思っているものの例です。ジョンが現れた最初の時刻は、それが現われる最後の時刻で上書きされます。

enter image description here

答えて

1

私は、これはあなたのためにそれをやるべきだと思います。

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]) 
    } 
}  
関連する問題