I have the below code in a script I am using for Google AdWords and it is working well however was hoping that it could be shortened or consolidated in some way easily. It is currently working however has nearly double the script run time and is not very easy for changes and expansion in the future (if needed). Please let me know how you would do this or if you need any other information!
//projections by Campaign row 22
sheet.getRange("E10").setValue("=A22");
sheet.getRange("E11").setValue("=H22");
sheet.getRange("E12").setValue("=J22");
sheet.getRange("E13").setValue("=Round(E11/E12)");
sheet.getRange("E14").setValue("=B22");
sheet.getRange("E15").setValue("=D22");
sheet.getRange("E17").setValue("=sum((G22/E3)*100)");
sheet.getRange("E18").setValue("=E11-E3");
sheet.getRange("E19").setValue("=ROUND(E18/B6)");
//projections by Campaign row 23
sheet.getRange("F10").setValue("=A23");
sheet.getRange("F11").setValue("=H23");
sheet.getRange("F12").setValue("=J23");
sheet.getRange("F13").setValue("=Round(F11/F12)");
sheet.getRange("F14").setValue("=B23");
sheet.getRange("F15").setValue("=D23");
sheet.getRange("F17").setValue("=sum((G23/F3)*100)");
sheet.getRange("F18").setValue("=F11-F3");
sheet.getRange("F19").setValue("=ROUND(F18/B6)");
//projections by Campaign row 24
sheet.getRange("G10").setValue("=A24");
sheet.getRange("G11").setValue("=H24");
sheet.getRange("G12").setValue("=J24");
sheet.getRange("G13").setValue("=Round(G11/G12)");
sheet.getRange("G14").setValue("=B24");
sheet.getRange("G15").setValue("=D24");
sheet.getRange("G17").setValue("=sum((G24/G3)*100)");
sheet.getRange("G18").setValue("=G11-G3");
sheet.getRange("G19").setValue("=ROUND(G18/B6)");
//projections by Campaign row 25
sheet.getRange("H10").setValue("=A25");
sheet.getRange("H11").setValue("=H25");
sheet.getRange("H12").setValue("=J25");
sheet.getRange("H13").setValue("=Round(H11/H12)");
sheet.getRange("H14").setValue("=B25");
sheet.getRange("H15").setValue("=D25");
sheet.getRange("H17").setValue("=sum((G25/H3)*100)");
sheet.getRange("H18").setValue("=H11-H3");
sheet.getRange("H19").setValue("=ROUND(H18/B6)");
//projections by Campaign row 26
sheet.getRange("I10").setValue("=A26");
sheet.getRange("I11").setValue("=H26");
sheet.getRange("I12").setValue("=J26");
sheet.getRange("I13").setValue("=Round(I11/I12)");
sheet.getRange("I14").setValue("=B26");
sheet.getRange("I15").setValue("=D26");
sheet.getRange("I17").setValue("=sum((G26/I3)*100)");
sheet.getRange("I18").setValue("=I11-I3");
sheet.getRange("I19").setValue("=ROUND(I18/B6)");
//projections by Campaign row 27
sheet.getRange("J10").setValue("=A27");
sheet.getRange("J11").setValue("=H27");
sheet.getRange("J12").setValue("=J27");
sheet.getRange("J13").setValue("=Round(J11/J12)");
sheet.getRange("J14").setValue("=B27");
sheet.getRange("J15").setValue("=D27");
sheet.getRange("J17").setValue("=sum((G27/J3)*100)");
sheet.getRange("J18").setValue("=J11-J3");
sheet.getRange("J19").setValue("=ROUND(J18/B6)");
//projections by Campaign row 28
sheet.getRange("K10").setValue("=A28");
sheet.getRange("K11").setValue("=H28");
sheet.getRange("K12").setValue("=J28");
sheet.getRange("K13").setValue("=Round(K11/K12)");
sheet.getRange("K14").setValue("=B28");
sheet.getRange("K15").setValue("=D28");
sheet.getRange("K17").setValue("=sum((G28/K3)*100)");
sheet.getRange("K18").setValue("=K11-K3");
sheet.getRange("K19").setValue("=ROUND(K18/B6)");
//projections by Campaign row 29
sheet.getRange("L10").setValue("=A29");
sheet.getRange("L11").setValue("=H29");
sheet.getRange("L12").setValue("=J29");
sheet.getRange("L13").setValue("=Round(L11/L12)");
sheet.getRange("L14").setValue("=B29");
sheet.getRange("L15").setValue("=D29");
sheet.getRange("L17").setValue("=sum((G29/L3)*100)");
sheet.getRange("L18").setValue("=L11-L3");
sheet.getRange("L19").setValue("=ROUND(L18/B6)");
//projections by Campaign row 30
sheet.getRange("M10").setValue("=A30");
sheet.getRange("M11").setValue("=H30");
sheet.getRange("M12").setValue("=J30");
sheet.getRange("M13").setValue("=Round(M11/M12)");
sheet.getRange("M14").setValue("=B30");
sheet.getRange("M15").setValue("=D30");
sheet.getRange("M17").setValue("=sum((G30/M3)*100)");
sheet.getRange("M18").setValue("=M11-M3");
sheet.getRange("M19").setValue("=ROUND(M18/B6)");
//projections by Campaign row 30
sheet.getRange("N10").setValue("=A31");
sheet.getRange("N11").setValue("=H31");
sheet.getRange("N12").setValue("=J31");
sheet.getRange("N13").setValue("=Round(N11/N12)");
sheet.getRange("N14").setValue("=B31");
sheet.getRange("N15").setValue("=D31");
sheet.getRange("N17").setValue("=sum((G31/N3)*100)");
sheet.getRange("N18").setValue("=N11-N3");
sheet.getRange("N19").setValue("=ROUND(N18/B6)");
It seems that you are using the wrong notation: you want to insert FORMULA and not VALUE so far. Check the Spreadsheet Class and Range Class docs.
Here is what you are looking for:
So for example
sheet.getRange("E10").setValue("=A22");
sheet.getRange("E11").setValue("=H22");
sheet.getRange("E12").setValue("=J22");
sheet.getRange("E13").setValue("=Round(E11/E12)");
sheet.getRange("E14").setValue("=B22");
sheet.getRange("E15").setValue("=D22");
sheet.getRange("E17").setValue("=sum((G22/E3)*100)");
sheet.getRange("E18").setValue("=E11-E3");
sheet.getRange("E19").setValue("=ROUND(E18/B6)");
could become
var Formulas = [
"=A22","=H22","=J22"
"=Round(E11/E12)",
"=B22","=D22",
"=Sum((G22/E3)*100)",
"=E11-E3",
"=ROUND(E18/B6)"
]
sheet.getRange("E10:E19").setFormulasR1C1(Formulas);
//not sure about the A1 notation if that would accept this parameters else
//replace by getRange(10,5,19,5) (