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?
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
Post a Comment