我有這個代碼在谷歌腳本獲取Sheet1 Sheet3 Sheet3中的條件數組。但現在陣列只能放在另一個之下。我需要的是將'v'中的每個新數組放在下5列中,就像我的電子表格中的示例一樣。其次 - 在此之前,我使用了搜索公式的過濾器,這允許我使用通配符,如*或?。我如何在我的新功能中使用通配符或正則表達式?結合multy陣列並排谷歌腳本
我會感謝任何幫助。
function getval(){
var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1");
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet2");
var sspodbor = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet3");
var range = ss.getRange("A2:A29");
var values = range.getValues();
var rangez = sheet.getRange("A1:A14");
var valuesz = rangez.getValues();
var z = []
for (var x = 0; x<valuesz.length; x++){
z.push(valuesz[x])
}
var v = [];
for (var q = 0; q < valuesz.length; q++){
for (var s = 0; s < values.length; s++){
if(values[s][5] == z[q]){
v.push([values[s][0],values[s][1],values[s][2],values[s][3],values[s][4]]);
}
//I am guessing that here must be a separating function
}
}
var range = sspodbor.getRange(4, 1, v.length,v[0].length);
range.setValues(v);
}
我的電子表格:https://docs.google.com/spreadsheets/d/1o7ErbeFHA7yyxMC0HMn3Uj5ZBRcy2uAwa1UpolVpBFI/edit?usp=sharing
幾個小東西:第一個var range = ss.getRange(「A2:A29」);可能應該是var range = ss.getRange(「A2:F29」);其次var z = []應該是var z = [];但對我來說最大的問題是你如何分組。 Sheet2只有14個值。因此,只有14個q值,但在您的示例中顯示了16列。那你怎麼分組呢, – Cooper
你好,@Cooper!就像你看到的,我從你以前的答案中學到了一些關於數組的知識我通過非常簡單的方式對它們進行了分組:在var中循環,從rangez中取一個單元格,然後在下一個循環中使用var我檢查值中的某個值是否等於它,我將它推到v數組中。當我接下來的q var時,我需要再次將相等的值從0-4推到下一列 – Davagaz
我最終在這裏包括了q值:if(values1 [s] [5] == z [q]){v .push([values1 [s] [0],values1 [s] [1],values1 [s] [2],values1 [s] [3],values1 [s] [4],q]);}沿着與您的輸出數據,因爲它似乎是每個組的共同點。 – Cooper