2016-10-05 4 views
0

私はこの問題を解決するのに役立つコードや指示をインターネットで見ようとしています。
基本的には、最新の列にはデータが表すものについての説明が記載されている4つの列にわたるデータセットがあります。
説明は同じでも数字だけの異なるデータセットが与えられる毎日、新しいデータを毎日インポートしています。
私はスクリプトに重複を見つけて、データを取り出して元のデータに追加し、重複を削除したいと思います。
だから、私は列1を累積し、残りのデータを削除したいだけです。重複行を削除して最初の列を元の行に追加するGoogleスクリプト

重複を見つけて、データセット全体を削除し、重複しないで新しいデータセットをシートにプッシュする方法を知っています。
しかし、私はこのオンラインの可能性を見つけることができません。おそらく、複製Newが存在する行へのNewdataコピーの範囲の値を取得し、その配列全体をプッシュする可能性があります。
しかし、私が取り入れようとしてきたことは、私に複数のバグと無限の計算時間を与えます。

私は誰かがこれを手伝ってくれることを願っています。

function DuplicateRemoval(){ 
    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.join() == newData[j].join()){ 
     duplicate = true; 
     } 
    } 
    if(!duplicate){ 
     newData.push(row); 
    } 
    } 
    sheet.clearContents(); 
    sheet.getRange(1, 1, newData.length, newData[0].length).setValues(newData); 
} 

答えて

0

これはなんですか?

function overwriteWithNew() { 
    var sheet = SpreadsheetApp.getActiveSheet(); 
    var data = sheet.getDataRange().getValues(); 
    var newData = []; 

    data.forEach(function(row, rowI) { 
    if (!newData.some(function(row2) {return row[0] === row2[0];})) { // If the key is not in the output yet 
     for (var row2I = data.length - 1; row2I >= rowI; row2I--) {  // Then, starting from the last column 
     if (data[row2I][0] === row[0]) {        // Find the latest data with the same key 
      newData.push(data[row2I]);         // Add it to the output 
      break;              // And continue with the next row 
     } 
     } 
    } 
    }); 
    sheet.clearContents(); 
    sheet.getRange(1, 1, newData.length, newData[0].length).setValues(newData); 
} 
+0

こんにちは、ロビン、ありがとうございました。たとえば、私の重複した説明が列5にあり、SUMにしたいデータが列1にある場合は、このスクリプトで可能ですか?これは、1つの列だけをチェックして、同じ列を追加するように見えますが、それは正しいですか? –

+0

これはちょうど '= QUERY(A:E、SELECT E、SUM(A)E <> '' GROUP BY E '')で行うことができます。 ?列2-4に何が起こらないのか? –

+0

私はデータをもう一度変更しました。現在、Col Cには複製される説明が含まれています.Col DとEは重複がある場合に合計する必要がある値です。前にクエリで作業したことがないのですが、そのクエリをシートの任意のセルに入れることはできますか?ありがとうございます –

関連する問題