Как насчет этого:
function emaillFilter(){
const ss=SpreadsheetApp.getActive();
const sh=ss.getSheetByName("Email");
const ush=ss.getSheetByName("Update");
const data=sh.getRange(2,1,sh.getLastRow(),5).getValues();
var array=[];
data.forEach(function(r,i){
if(r[2] && r[4]) {
array.push(r);
}
});
ush.getRange(ush.getLastRow()+1, 1, array.length,array[0].length).setValues(array);
}
Хорошо, я думаю, что вы хотите это на основе вашего комментария:
желаемый результат - вставьте столбец C и добавьте E без пробелов в столбец A другого листа
Но я должен признать, что не вижу отраженного в вашем примере второго изображения, поэтому нам может понадобиться еще одна итерация.
function emaillFilter(){
const ss=SpreadsheetApp.getActive();
const sh=ss.getSheetByName("Email");
const ush=ss.getSheetByName("Update");
const data=sh.getRange(2,1,sh.getLastRow(),5).getValues();
var array=[];
data.forEach(function(r,i){
//is columnC and columnE both truth
if(r[2] && r[4]) {
array.push([r[2] + ',' + r[4]]);
//is columnC truthy and columnE falsy
}else if(r[2] && !r[4]) {
array.push([r[2]]);
}
});
ush.getRange(ush.getLastRow()+1, 1, array.length,array[0].length).setValues(array);
}
Хорошо, я думаю вот оно:
function emaillFilter(){
const ss=SpreadsheetApp.getActive();
const sh=ss.getSheetByName("Email");
const ush=ss.getSheetByName("Update");
const data=sh.getRange(2,1,sh.getLastRow(),5).getValues();
var array1=[];
var array2=[];
data.forEach(function(r,i){
if(r[2]) {
array1.push([r[2]]);
}
if(r[4]) {
array2.push([r[4]]);
}
});
var array=array1.concat(array2);
ush.getRange(ush.getLastRow()+1, 1, array.length,array[0].length).setValues(array);
}
Спасибо за изображения. Они действительно помогли.
правдиво
ложь