Сравните несколько значений в одном массиве - PullRequest
0 голосов
/ 21 января 2020

Мне нужна помощь, чтобы определить, как я могу сравнить 4 столбца одной строки с 4 столбцами другой строки.

Для объяснения у меня есть две таблицы, каждая из которых имеет четыре столбца: State, Area, City & Location.

Таблица 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 - повторяющиеся значения - «Выделенная колонна»

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