Как искать ячейки с одинаковым значением столбца в листах Google с помощью редактора сценариев? - PullRequest
0 голосов
/ 31 января 2020

Таким образом, у меня есть лист Google с моим первым столбцом, содержащим метки времени, второй столбец содержит идентификаторы

12/19/2019 1:11:19      1234
12/21/2020 0:16:13      2345
12/22/2020 23:50:09     1234

Я хочу провести l oop через столбцы идентификаторов для каждой строки и посмотреть, есть ли дубликат, так что-то вроде

for(var i = 1; i <= sheetLength;i++){
   //sheet variable is named sheet1 
   var id = sheet1.getRange(i,2).getValue();
   for(var j = 0; j <= sheetLength;j++){
     var idArray[j].setValue(id);
   }
}

Из того, что я понимаю, все идентификаторы помещаются в динамический массив c, как я могу сравнить следующий идентификатор в строке с массивом, чтобы увидеть, есть ли дубликат или нет?

1 Ответ

0 голосов
/ 31 января 2020

Поиск одинаковых значений

Эта функция ищет все ячейки в диапазоне данных и идентифицирует одинаковые значения и диапазоны, в которых они находятся. Я только что протестировал с простыми заголовками и цифры.

 function findCellsWithSameValue() {
  var ss=SpreadsheetApp.getActive();
  var sh=ss.getSheetByName('Sheet234');
  var osh=ss.getSheetByName('Sheet235');
  var rg=sh.getDataRange();
  var v=rg.getDisplayValues();
  var uObj={uA:[]};
  for(var i=0;i<v.length;i++) {
    for(var j=0;j<v[i].length;j++) {
      var idx=uObj.uA.indexOf(v[i][j]);
      if(idx==-1) {
        uObj.uA.push(v[i][j])
        uObj[v[i][j]]=[];
        uObj[v[i][j]].push(sh.getRange(i+1,j+1).getA1Notation());
      }else{
        uObj[v[i][j]].push(sh.getRange(i+1,j+1).getA1Notation());
      }
    }
  }
  osh.clearContents();
  osh.appendRow(['Value','Ranges']);
  uObj.uA.forEach(function(v) {
    //eliminate unique values
    if(uObj[v].length>1) {
      osh.appendRow([v,uObj[v].join(', ')]);
    }
  })
}

Это вывод для ваших данных:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...