Google Sheets - Сравните различные строки - PullRequest
1 голос
/ 13 января 2020

У меня есть две таблицы, которые практически являются клонами друг друга, однако есть некоторые различия. Я хотел бы сравнить два листа. Я позабочусь об импорте его, чтобы его было легче сравнивать.

То, что я сравниваю, это строки информации, включая имя, адрес, статус. Со временем статус был обновлен на одном из листов. Я хотел бы иметь возможность идентифицировать ячейки в строках, которые не похожи друг на друга.

1 Ответ

1 голос
/ 13 января 2020

Вы можете сделать это с помощью Google Apps Script. Следующий код работает в качестве примера для выполнения sh this:

var OTHER_SPREADSHEET_ID = "OTHER_SPREADSHEET_ID";
var NUM_COLUMNS = 4;

function checkDifferences() {
  var otherSheet = SpreadsheetApp.openById(OTHER_SPREADSHEET_ID).getSheetByName('Sheet1');
  var sheet = SpreadsheetApp.getActive().getSheetByName('Sheet1');

  var lastRow = sheet.getLastRow();

  var thisValues = sheet.getRange(1, 1, lastRow, NUM_COLUMNS).getValues();
  var otherValues = otherSheet.getRange(1, 1, lastRow, NUM_COLUMNS).getValues();

  for (var i=0; i<lastRow; i++) {
    if (!rowsAreEqual(thisValues[i], otherValues[i])) {
      // Mark row
      sheet.getRange(i+1, 1, 1, NUM_COLUMNS).setBackground("yellow");
    }
  }
}

function rowsAreEqual(row1, row2) {
  for (var i=0; i<row1.length; i++) {
    if (row1[i] !== row2[i]) return false;
  }
  return true;
}

Проще говоря, код выполняет следующее:

  1. Откройте таблицу, для которой вы хотите текущую таблицу для сравнения с.
  2. Для каждой строки, если строки различаются, изменить цвет фона электронной таблицы «хост» (электронной таблицы, с которой связан код).

Пример

enter image description here

enter image description here

После выполнения кода (привязанного к «измененной» электронной таблице) лист становится следующим:

enter image description here

Ссылки

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