Извлечь и сопоставить значения, соответствующие идентификатору из массива Google Script - PullRequest
0 голосов
/ 22 ноября 2018

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

У меня есть таблица, которая содержит записи формыКлиенты, которые арендуют товары, и это выглядит так:

Col A: метки времени --------- Col B: клиент ------------ ColC: количество --------- Col D:Код

В качестве идентификатора используются метки времени;один и тот же клиент может арендовать несколько продуктов, поэтому в этом случае метки времени и названия повторяются, а количество и коды различаются.Скриншот моего листа

Начиная с известного идентификатора, мне нужно:1 - записать в новый временный диапазон значений (клиент / квант. / Продукты), который совпадает с моим идентификатором;2 - если существует несколько записей, совпадающих с данным идентификатором, мне нужно было бы написать внутри ячейки уникальную строку, содержащую имя клиента (столбец B) только один раз + все подходящие количества и продукты (столбец C, столбец D).

Я думаю, что меня смущают измерения в массиве и так далее, но я действительно могу понять, как это сделать!Вот код:

function compare() {  
var sheet = SpreadsheetApp.openById("IdSheet");
var ss = sheet.getSheetByName("SheetName");

var range1 = ss.getRange("A1:D"); // range of data from form - Timestamps (used as Id)  | ClientName | Quantity | Code
var data1 = range1.getDisplayValues();
var id = ss.getRange("E3").getDisplayValue(); // Id to look for in column A (Timestamps) 

// look for Id in A column
var count = []; 
for(var i=0; i<data1.length-1; i++){ 
var timestamp = data1[i][0]; 
if(timestamp == id){

// count how many Ids have been duplicated
count.push(timestamp);  

// Log of Client + Product who have same Id
Logger.log(data1[i][1]+','+data1[i][3]); 

// First question: how can I write filtered values inside range F1:H?

};
};


// If Id is unique find row
if (count.length == 1 ) { 
  for(var j = 0; j < data1.length;j++){
    if(data1[j][0] == id){ 
      ss.getRange("E6").setValue(j+1);  
    };
   };  
  }

else {

// Second question: if there are multiple entries with same Id I would need to write inside a cell 
//a unique string which contains Client name (col B) of the first Id found + all matching products (col C, col D).

.............. 
  }
}

Любая помощь будет так цениться!Спасибо!

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