Google sheets 基于新表单响应覆盖特定列数据的方法?

Google sheets 基于新表单响应覆盖特定列数据的方法?,google-sheets,google-forms,google-sheets-formula,Google Sheets,Google Forms,Google Sheets Formula,我有一个谷歌表格(表格1),销售人员在销售完成后填写。此表格提供上传客户文件的选项,例如护照副本、地址证明等。这些是可选的,因为客户在销售时可能没有这些文件 这些上传通过主输入表中的Google文档链接进行跟踪 我有第二个表单(表单2),用于上传在第一次尝试中从未上传过的文档 表格2可多次使用,因为多个文件可能在不同时间上载 有没有办法用表格2中的新输入覆盖表格1中的空白输入数据 毕竟,文档被上传了,最终的结果看起来像下面的第三张纸 我不喜欢更改表单结果。我发现在其他地方做任何事情: 从数据完

我有一个谷歌表格(表格1),销售人员在销售完成后填写。此表格提供上传客户文件的选项,例如护照副本、地址证明等。这些是可选的,因为客户在销售时可能没有这些文件

这些上传通过主输入表中的Google文档链接进行跟踪

我有第二个表单(表单2),用于上传在第一次尝试中从未上传过的文档

表格2可多次使用,因为多个文件可能在不同时间上载

有没有办法用表格2中的新输入覆盖表格1中的空白输入数据

毕竟,文档被上传了,最终的结果看起来像下面的第三张纸


我不喜欢更改表单结果。我发现在其他地方做任何事情:

  • 从数据完整性的角度来看,在我构建或 试验,
  • 对表单的风险较小→电子表格链接
  • 有助于满足任何流程/数据透明度需求,因为它是原始的
  • 帮助 具有严格的共享和访问管理要求,以及
  • 在报告或分析的格式和 功能
我在演示电子表格中添加了一张“报告”表。第2行只有五个公式。它们各自从两个表单响应表中提取适当的数据,实时更新任何其他响应,并显示每个生成行的请求输出

如果您可以容忍转到报表选项卡而不是在表单1响应中直接工作的更改,我认为这是正确的方法,非常适合您的文件。祝你的项目一切顺利


下面,我为后人复制了五个公式。如果您认为最终会使用该报告选项卡,或根据您的项目调整其公式,请这样说,我将详细解释它们,不会比一年后更糟,然后您必须修复我复杂的公式或编辑它们以满足一些新的项目需要

A2从两种形式中获取每个不同的名称

=UNIQUE({'Form 1 Response'!A2:A;'Form 2 Response'!A2:A})
B2显示“完整”或缺少哪些文件字母

=ARRAYFORMULA(IFS(
  NOT(LEN(A2:A)),"",
  LEN(C2:C)*LEN(D2:D)*LEN(E2:E),"Complete",
  TRUE,IF(LEN(C2:C),"","Doc A ")&IF(LEN(D2:D),"","Doc B ")&IF(LEN(E2:E),"","Doc C")
))
C2从任一表单中拉入文档A的任何链接

=ARRAYFORMULA(IF(NOT(LEN($A$2:$A)),"",
  IFERROR(VLOOKUP($A$2:$A,FILTER('Form 1 Response'!$A$2:C,LEN('Form 1 Response'!C$2:C)),3,FALSE))&
  IFERROR(VLOOKUP($A$2:$A,FILTER('Form 2 Response'!$A$2:B,LEN('Form 2 Response'!B$2:B)),2,FALSE))
))
D2文件B链接

=ARRAYFORMULA(IF(NOT(LEN($A$2:$A)),"",
  IFERROR(VLOOKUP($A$2:$A,FILTER('Form 1 Response'!$A$2:D,LEN('Form 1 Response'!D$2:D)),4,FALSE))&
  IFERROR(VLOOKUP($A$2:$A,FILTER('Form 2 Response'!$A$2:C,LEN('Form 2 Response'!C$2:C)),3,FALSE))
))
E2文档C链接

=ARRAYFORMULA(IF(NOT(LEN($A$2:$A)),"",
  IFERROR(VLOOKUP($A$2:$A,FILTER('Form 1 Response'!$A$2:E,LEN('Form 1 Response'!E$2:E)),5,FALSE))&
  IFERROR(VLOOKUP($A$2:$A,FILTER('Form 2 Response'!$A$2:D,LEN('Form 2 Response'!D$2:D)),4,FALSE))
))

粘贴到A1

=ARRAYFORMULA({'Form 1 Response'!A1:E1; {UNIQUE({'Form 1 Response'!A2:A; 'Form 2 Response'!A2:A}),
 SUBSTITUTE(REGEXREPLACE(SUBSTITUTE(REGEXREPLACE(TRIM(TRANSPOSE(QUERY(TRANSPOSE(SUBSTITUTE(IF(
 IFERROR(IF(VLOOKUP(UNIQUE({'Form 1 Response'!A2:A; 'Form 2 Response'!A2:A}), 'Form 1 Response'!A2:E, 
 {3, 4, 5}, 0)="", IF({
 VLOOKUP(UNIQUE({'Form 1 Response'!A2:A; 'Form 2 Response'!A2:A}), 
 QUERY({'Form 2 Response'!A2:D}, "where Col2 is not null"), 2, 0),
 VLOOKUP(UNIQUE({'Form 1 Response'!A2:A; 'Form 2 Response'!A2:A}), 
 QUERY({'Form 2 Response'!A2:D}, "where Col3 is not null"), 3, 0),
 VLOOKUP(UNIQUE({'Form 1 Response'!A2:A; 'Form 2 Response'!A2:A}), 
 QUERY({'Form 2 Response'!A2:D}, "where Col4 is not null"), 4, 0)}="", , {'Form 2 Response'!B1:D1}),
 {'Form 1 Response'!C1:E1}))="", {'Form 1 Response'!C1:E1}, 1), " ", "♠")), , 500000))),
 "  | ", ", "), "1, 1, 1", "Complete"), "1, |, 1|Doc♠A, Doc♠B, Doc♠C", ""), "♠", " "),
 IFERROR(IF( VLOOKUP(UNIQUE({'Form 1 Response'!A2:A; 'Form 2 Response'!A2:A}), 'Form 1 Response'!A2:E, 
 {3, 4, 5}, 0)="", {
 VLOOKUP(UNIQUE({'Form 1 Response'!A2:A; 'Form 2 Response'!A2:A}), 
 QUERY({'Form 2 Response'!A2:D}, "where Col2 is not null"), 2, 0),
 VLOOKUP(UNIQUE({'Form 1 Response'!A2:A; 'Form 2 Response'!A2:A}), 
 QUERY({'Form 2 Response'!A2:D}, "where Col3 is not null"), 3, 0),
 VLOOKUP(UNIQUE({'Form 1 Response'!A2:A; 'Form 2 Response'!A2:A}), 
 QUERY({'Form 2 Response'!A2:D}, "where Col4 is not null"), 4, 0)},
 VLOOKUP(UNIQUE({'Form 1 Response'!A2:A; 'Form 2 Response'!A2:A}), 'Form 1 Response'!A2:E, 
 {3, 4, 5}, 0)))}})


非常感谢您的详细回复!效果很好