javascript - How to use getLastRow when using an array formula, in google sheets. Can I have it ignore a column? -


i using below formula in google sheet. works perfectly, except have found getlastrow not function, since using array formulas in column m-p.

how can around this? possible have getlastrow ignore columns?

link test sheet.

function onedit(event) {   // assumes source data in sheet named needed   // target sheet of move named acquired   // test column yes/no col 4 or d   var ss = spreadsheetapp.getactivespreadsheet();   var s = event.source.getactivesheet();   var r = event.source.getactiverange();    if(s.getname() == "open" && r.getcolumn() == 9 && r.getvalue() == "yes") {     var row = r.getrow();     var numcolumns = s.getlastcolumn()-2;     var targetsheet = ss.getsheetbyname("closed");     var target = targetsheet.getrange(targetsheet.getlastrow()+1, 1);     s.getrange(row, 1, 1, numcolumns).moveto(target);     s.deleterow(row);     s.insertrowafter(29);     var cell = s.getrange("h30");     cell.setformula("=if(len(c30),minus(g30,today()),)");   } } 

from link test sheet, formula in closed!m1 is

={"audit - resp. days left";arrayformula(if(len(f2:f),minus(f2:f,i2:i),))} 

the above formula returns array same height of closed sheet makes getlastrow returns same maxrows.

in order keep the formulas , script unchanged, 1 alternative delete blank rows in closed sheet.

another alternative change closed sheet formulas in m1 p1 return required rows. 1 way using filter function instead of arrayformula , if functions , i.e., m1

={"audit - resp. days left";filter(minus(e2:e,h2:h),len(e2:e))} 

to make works, sure clear content of blanks rows.


Comments