getNordic
getNordic

Reputation: 57

How to detect duplicate values with google script in two seperate rows?

I`m trying to detect with Google Scripts and Google Spreadsheet if a value in column B is already mentioned in column A. The columns are in 2 separate sheets. For some reason I'm not experienced enough to get it work:) Best thanks in advance getNordic

function insert(e,sheet) {
var ss = SpreadsheetApp.openByUrl("https://docs.google.com/spreadsheets/d/12NpQZBCaw2jmK5oR-zWmvfNxGeMjiAQzB4-RFtX30W4/edit#gid=0");
var sheet = ss.getSheetByName("Sheet1")"
var check2 =sheet.getRange(seclastrow, 1).getValue();
var st = SpreadsheetApp.openByUrl("https://docs.google.com/spreadsheets/d/1gYEedTcsbjNKLl5Fmd1kxROIah5uIq3VHG_O7JKvEs0/edit#gid=0");
var sheett = st.getSheetByName("sheet1");
var data = sheett.getRange("P8:P50").getValues();
var newData = new Array();
for (i in data) {
    var row = data[i];
  /*  TODO feature enhancement in de-duplication
    var date_modified =row[row.length-2];

    var order_key = row[row.length];

    var existingDataSearchParam = order_key + "/" + date_modified; 
   */

    var duplicate = false;

    for (j in newData) {

      var rowNewData = newData[j];

      var new_order_key = rowNewData[rowNewData.length];

      //var newDataSearchParam = new_order_key + "/" + new_date_modified; // TODO feature enhancement in de-duplication

      if(check2 == newData) {
            duplicate = true;

        }

      // TODO feature enhancement in de-duplication
      /*if (existingDataSearchParam == newDataSearchParam){
        duplicate = true;
      }*/

    }
    if (duplicate == true) {
        sheett.getRange(8, 26).setValue("Success");;
    }else {
      sheett.getRange(8, 26).setValue("Not Found");
}
}
var truefalse = sheett.getRange(8, 26).getValue();

 return ContentService
 .createTextOutput(newData)
 .setMimeType(ContentService.MimeType.JAVASCRIPT);

}

Upvotes: 0

Views: 4755

Answers (1)

Cooper
Cooper

Reputation: 64062

Find Duplicates between to different columns in two different spreadsheets

You need to supply ID0, ID1, SheetName0 and SheetName1

function findDuplicatesInDifferentSpreadsheets() {
  var ss0=SpreadsheetApp.OpenById("ID0");
  var sh0=ss0.getSheetByName("SheetName0");
  var rg0=sh0.getRange(1,1,sh0.getLastRow(),1);
  var vA0=rg0.getValues();
  var ss1=SpreadsheetApp.openById('ID1');
  var sh1=ss1.getSheetByName("SheetName1");
  var rg1=sh1.getRange(1,2,sh1.getLastRow(),1);
  var vA1=rg1.getValues();
  var dA=[];//duplicate array
  var v0A=vA0.map(function(r){return r[0];});//flatten
  var v1A=vA1.map(function(r){return r[0];});//flatten
  for(var i=0;i<v0A.length;i++) {
    for(var j=0;j<v1A.length;j++) {
      if(v0A[i]==v1A[j]) {
        dA.push(Utilities.formatString('Duplicate Found:<br />SpreadSheet: %s SheetName: %s Row: %s Value: %s<br />SpreadSheet: %s SheetName: %s Row: %s Value: %s',ss0.getName(),sh0.getName(),i+1,v0A[i],ss1.getName(),sh1.getName(),j+1,v1A[j]));
      }
    }
  }
  //Logger.log(dA);                            
  var html=dA.join('<br />');
  var userInterface=HtmlService.createHtmlOutput(html);
  SpreadsheetApp.getUi().showModelessDialog(userInterface, 'Duplicates');//Results Dialog
}

My Data Sheets

enter image description here

Upvotes: 2

Related Questions