从数组Google脚本中提取和合并与ID相匹配的值

时间:2018-11-22 15:27:13

标签: google-apps-script google-sheets

抱歉,发布此消息可能非常简单,但我对Google脚本尚不陌生,我真的无法以任何方式解决此问题。

我有一个表,其中包含租用产品的客户的表单条目,它看起来像:

Col A:时间戳记--------- Col B:客户------------ ColC:Quantity --------- Col D:代码

时间戳记用作ID;同一客户可以租用多种产品,因此在这种情况下,时间戳和名称会重复,而数量和代码会有所不同。 我的工作表的屏幕截图

从已知ID开始, 我需要:
1-在其中写入与我的ID匹配的新的临时范围值(客户/数量/产品);
2-如果有多个与给定ID匹配的条目,我需要在一个单元格中编写一个唯一的字符串,该字符串仅包含一次客户名称(col B)+所有匹配的数量和产品(col C,col D)。

我认为我对Array维等感到困惑,但是我真的可以弄清楚该怎么做! 这里的代码:

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).

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

任何帮助将不胜感激! 谢谢!

0 个答案:

没有答案