Google sheets 基于新表单响应覆盖特定列数据的方法?
我有一个谷歌表格(表格1),销售人员在销售完成后填写。此表格提供上传客户文件的选项,例如护照副本、地址证明等。这些是可选的,因为客户在销售时可能没有这些文件 这些上传通过主输入表中的Google文档链接进行跟踪 我有第二个表单(表单2),用于上传在第一次尝试中从未上传过的文档 表格2可多次使用,因为多个文件可能在不同时间上载 有没有办法用表格2中的新输入覆盖表格1中的空白输入数据 毕竟,文档被上传了,最终的结果看起来像下面的第三张纸Google sheets 基于新表单响应覆盖特定列数据的方法?,google-sheets,google-forms,google-sheets-formula,Google Sheets,Google Forms,Google Sheets Formula,我有一个谷歌表格(表格1),销售人员在销售完成后填写。此表格提供上传客户文件的选项,例如护照副本、地址证明等。这些是可选的,因为客户在销售时可能没有这些文件 这些上传通过主输入表中的Google文档链接进行跟踪 我有第二个表单(表单2),用于上传在第一次尝试中从未上传过的文档 表格2可多次使用,因为多个文件可能在不同时间上载 有没有办法用表格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)))}})
非常感谢您的详细回复!效果很好