У меня есть два листа, один - это зеркальный лист, «Лист2», который я использую для хранения значений другого листа, «Лист1».Моя цель - иметь функцию сравнения двух листов на предмет различий.Лучший способ, которым я мог придумать, - это сравнить столбец A из Sheet1 с столбцом A из Sheet2.Я нашел несколько функций, которые сравнивали 2 столбца, но он выполнил поиск значений из одного столбца и нашел его в другом столбце.Или возвращая все значения в тех ячейках, которые имели совпадающее значение, независимо от того, в какой строке оно было. Но я не хочу, чтобы значения в ячейках были обязательно.Я хочу найти первую строку, где два столбца перестают совпадать.Я довольно новичок в Javascript, поэтому я все еще не могу понять весь материал for (var j = 0; j < range.length; j++)
.
Но я уверен, что мне нужно знать, как использовать его для нужной мне функции.Вот то, что я попытался использовать, но вместо того, чтобы дать мне диапазоны строк, он дал мне массив значений, которые были одинаковыми, если я изменил его на if(lookup[i][0]!==range[j][0]){
, он дал мне все возможные комбинации, которые не были сопоставлены.Это из stackoverflow.com / questions / 42044903
function findDifference() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var s=ss.getSheetByName("Sheet1")
var lr=s.getLastRow()
var lookup = s.getRange(2,1,lr-1,2).getValues();
var s1=ss.getSheetByName("Sheet2")
var lr1=s1.getLastRow()
var range = s1.getRange(2,1,lr1-1,2).getValues();
var lookupRange = [];
for (var i = 0; i < lookup.length; i++) {
for (var j = 0; j < range.length; j++) {
var test=lookup[i][0]
if(lookup[i][0]!==range[j][0]){
lookupRange.push([range[j][0],range[j][1],lookup[i][0],lookup[i][1],]);
}}}
s1.getRange(10,1,lookupRange.length,4).setValues(lookupRange);
}
Мне кажется, что есть очень похожая функция для того, что я пытаюсь сделать, которая уже существует, но я не могукажется, что нашел или придумал, как это будет работать, потому что я новичок и не знаю всех хитростей.Что-то вроде:
var ss = SpreadsheetApp.getActiveSpreadsheet();
var s1=ss.getSheetByName("Sheet1")
var s2=ss.getSheetByName("Sheet2")
var ColumnA1 = s1.getRange('A:A').getValues()
var ColumnA2 = s2.getRange('A:A').getValues()
var Row = Function()
///Some function I can't think of using where
if(ColumnA1 + Row !== ColumnA2 + Row){
???.getRow()
}