抱歉,发布此消息可能非常简单,但我对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).
..............
}
}
任何帮助将不胜感激! 谢谢!