如何将公式应用于Google Spreadsheets中新的表单插入数据行?

时间:2013-05-08 03:30:05

标签: google-sheets gs-vlookup

我希望我的Google电子表格能够自动将单元格F2到H2中找到的公式应用到所有新的表单插入行。 You can view the spreadsheet here.

公式为:

F2: = IF(B2,“I”& B2,“ - ”)

G2: = vlookup(C2,SectionID!$ A $ 2:$ B $ 13,2,FALSE)

H2: = vlookup(D2,ReporterID!$ A $ 2:$ B $ 12,2,FALSE)

我尝试将公式手动应用于第3行到第10行,但是在提交表单时,数据会添加到不包含公式的新创建的行中。 (表格数据提交到A到E列。)

随意更改电子表格。

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

您需要使用脚本填写表单提交中的公式,或使用现成的解决方案,该解决方案是一个数组公式:

=ArrayFormula(IF(A2:A;IF(B2:B;"I"&B2:B;"--");IFERROR(1/0)))

=ArrayFormula(IFERROR(VLOOKUP(C2:C;SectionID!$A$2:$B$13;2*SIGN(ROW(A2:A));FALSE)))

=ArrayFormula(IFERROR(VLOOKUP(D2:D;ReporterID!$A$2:$B$12;2*SIGN(ROW(A2:A));FALSE)))

Here是关于将VLOOKUP转换为迭代数组所涉及的技巧的一些讨论。

您还可以调用第1行中的公式来填充标题,这可以减少可能在第2行上方插入行的情况:

=ArrayFormula(IF(ROW(A:A)=1;"IssueID";IF(A:A;IF(B:B;"I"&B:B;"--");IFERROR(1/0))))

=ArrayFormula(IF(ROW(A:A)=1;"SectionID";IFERROR(VLOOKUP(C:C;SectionID!$A$2:$B$13;2*SIGN(ROW(A:A));FALSE))))

=ArrayFormula(IF(ROW(A:A)=1;"ReporterID";IFERROR(VLOOKUP(D:D;ReporterID!$A$2:$B$12;2*SIGN(ROW(A:A));FALSE))))