Мне нужна помощь в определении наиболее эффективного способа сравнения комбинаций столбцов в одной строке листа с другой.
У меня есть две таблицы, в каждой из которых есть четыре столбца: Штат, Площадь, Город и Местоположение.
Таблица PINPOINT - в этой таблице есть уникальная комбинация значений
Таблица FEED - в этой таблице есть повторяющаяся комбинация значений, а также значение KEY из таблицы PINPOINT.
Мне нужен код, который говорит
"Если строка из столбца CL на листе FEED содержит значение ключа из столбца K на листе PINPOINT,
... но столбцы CN к CQ, что строка листа FEED не имеет тех же значений, что и столбец AD в таблице PINPOINT ...
обновить столбец CN, чтобы CQ лист FEED с той же комбинацией значений, что и AD в таблице PINPOINT . "
Я вставил последний код, который у меня есть ниже, а также изображения. Это дает мне массив, говорящий, что массивы являются «неопределенными». Я только начал изучать код, поэтому я рад переписать это, если кто-то предложит решение.
В любом случае, любое понимание того, как я должен написать это, будет весьма полезно.
var Data = SpreadsheetApp.getActiveSpreadsheet(); // DATA spreadsheet
var PinpointDataSheet = Data.getSheetByName("The Pinpoints") // DATA "Pinpoint" sheet
var PinpointAllValues = PinpointDataSheet.getRange(2, 1, PinpointDataSheet.getLastRow()-1,PinpointDataSheet.getLastColumn()).getValues();
var FeedDataSheet = Data.getSheetByName("The Feed_Raw") // DATA "Feed" sheet
var FeedAllValues = FeedDataSheet.getRange(2, 1, FeedDataSheet.getLastRow()-1,FeedDataSheet.getLastColumn()).getValues();
var PinpointStateObj = {}; // Object for "Locale" values
var PinpointAreaObj = {}; // Object for "Locale" values
var PinpointCityObj = {}; // Object for "Locale" values
var PinpointSpotObj = {}; // Object for "Locale" values
for(var P = PinpointAllValues.length-1;P>=0;P--) // put Pinpoint values in array..
{
PinpointStateObj[PinpointAllValues[P][0]] = PinpointAllValues[P][10];
PinpointAreaObj[PinpointAllValues[P][1]] = PinpointAllValues[P][10];
PinpointCityObj[PinpointAllValues[P][2]] = PinpointAllValues[P][10];
PinpointSpotObj[PinpointAllValues[P][3]] = PinpointAllValues[P][10];
}
for(var F = FeedAllValues.length-1;F>=0;F--) // for each row in the "Feed" sheet...
{
var Feed_GeotagKey = FeedAllValues[F][90]; // Pinpoint Key values in Feed sheet
{
// If Pinpoint array dont match feed values
if ((PinpointStateObj[Feed_GeotagKey] != FeedAllValues[F][95]) || (PinpointAreaObj[Feed_GeotagKey] != FeedAllValues[F][96])
|| (PinpointCityObj[Feed_GeotagKey] != FeedAllValues[F][97]) || (PinpointSpotObj[Feed_GeotagKey] != FeedAllValues[F][97]))
{
FeedAllValues[F][95] = PinpointAllValues[P][0]; // ...Change FYI Category Name in FYI Topic Sheet
FeedAllValues[F][96] = PinpointAllValues[P][1];
FeedAllValues[F][97] = PinpointAllValues[P][2];
FeedAllValues[F][98] = PinpointAllValues[P][3];
}
}
}
Geotag Sheet - уникальные значения «Темная колонна» Feed Sheet - повторяющиеся значения - «Выделенная колонна»