У меня есть этот код в скрипте Google для получения массивов из Sheet1 по критериям в Sheet2 на Sheet3. Но теперь массивы помещаются только один под другим. Мне нужно размещать каждый новый массив из «v» в следующих 5 столбцах, как в примере на моей электронной таблице.Объединить несколько массивов бок о бок сценарий google
Во-вторых - до этого я использовал фильтр с формулой поиска, позволяющий использовать подстановочные знаки типа * или?. Как я могу использовать подстановочные знаки или регулярное выражение в моей новой функции?
Я был бы признателен за любую помощь.
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 = ss.getRange ("A2: A29"); вероятно, должен быть var range = ss.getRange («A2: F29»); и, во-вторых, var z = [] должен быть var z = []; Но для меня большой вопрос - как вы их группируете. Sheet2 имеет только 14 значений. Таким образом, только 14 значений q, и вы покажете 16 столбцов в вашем примере. Итак, как вы их группируете, – Cooper
Привет, @Cooper! Как вы видите, я узнал что-то о массивах из вашего предыдущего ответа! Я сгруппировал их очень простым способом: в цикле с q var я беру одну ячейку из rangez, а затем в цикле с s 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