如何检查整个Google电子表格中的重复项

时间:2015-06-16 20:57:57

标签: google-apps-script google-sheets

我试图完成某些事情或许是为了雄心勃勃,但也许你可以帮我一臂之力。

我有一张带有4张表格的Google电子表格:

  

Master Senpai | Chevez San | Gabbie Sama |马里奥·陈

" Senpai大师"是一张包含合并数据的工作表,这意味着其他3个工作表中的所有内容都在" Master Senpai"

之内

这些电子表格目前正由3位同事使用(正如您可能猜到的那样,Chevez Gabbie和Mario)我需要的是他们每个人都能够确认或检查他们输入的任何信息是否重复。< / p>

所有表格都有相同的标题从A到L(共12列)我想检查列J的重复项。

所以对于例如Mario想要知道他刚刚输入的信息Gabbie或Chevez是否已经把它放进去了我想要那个单元格以红色背景进行Formated。

基本上阅读最后3张中的信息(忽略&#34; Master Senpai&#34;表格)并检查是否有重复项(如果找到任何颜色为红色背景)。

我一直在阅读它并发现了类似于我尝试做的事情。

/**
 * Finds duplicate rows in the active sheet and colors them red,
 but only pays attention to the indicated columns.
 */

function findDuplicates() {
  // List the columns you want to check by number (A = 1)
  var CHECK_COLUMNS = [2,3,5,6];

  // Get the active sheet and info about it
  var sourceSheet = SpreadsheetApp.getActiveSheet();
  var numRows = sourceSheet.getLastRow();
  var numCols = sourceSheet.getLastColumn();

  // Create the temporary working sheet
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var newSheet = ss.insertSheet("FindDupes");

  // Copy the desired rows to the FindDupes sheet
  for (var i = 0; i < CHECK_COLUMNS.length; i++) {
    var sourceRange = sourceSheet.getRange(1,CHECK_COLUMNS[i],numRows);
    var nextCol = newSheet.getLastColumn() + 1;
    sourceRange.copyTo(newSheet.getRange(1,nextCol,numRows));
  }

  // Find duplicates in the FindDupes sheet and color them in the main sheet
  var dupes = false;
  var data = newSheet.getDataRange().getValues();
  for (i = 1; i < data.length - 1; i++) {
    for (j = i+1; j < data.length; j++) {
      if  (data[i].join() == data[j].join()) {
        dupes = true;
        sourceSheet.getRange(i+1,1,1,numCols).setBackground("red");
        sourceSheet.getRange(j+1,1,1,numCols).setBackground("red");
      }
    }
  }

  // Remove the FindDupes temporary sheet
  ss.deleteSheet(newSheet);

  // Alert the user with the results
  if (dupes) {
    Browser.msgBox("Possible duplicate(s) found and colored red.");
  } else {
    Browser.msgBox("No duplicates found.");
  }
};

/**
 * Adds a custom menu to the active spreadsheet
 */
function onOpen() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet();
  var entries = [{
    name : "Find Duplicates",
    functionName : "findDuplicates"
  }];
  sheet.addMenu("My Scripts", entries);

  fillFormulas();
};

然而,这只是在同一张纸上查找重复项,我试图完成的是阅读和比较最后3张纸的信息。

0 个答案:

没有答案