【问题标题】:Way to overwrite specific column data based on new form response?基于新表单响应覆盖特定列数据的方法?
【发布时间】:2019-03-31 02:12:09
【问题描述】:

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

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

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

表格 2 可能会在多个场合使用,因为可能会在不同时间上传多个文档。

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

毕竟,文件已上传,最终结果将类似于下面的第三张表

https://docs.google.com/spreadsheets/d/1cOSBvgCFYoLYsf4GslyshUoXO0EP_ZbHfuaiGYD8FLk/edit?usp=sharing

【问题讨论】:

    标签: google-sheets google-forms google-sheets-formula


    【解决方案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 - 从任一表格中拉入 Doc 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))
    ))
    

    【讨论】:

    • 非常感谢您的详细回复!效果很好
    【解决方案2】:

    粘贴到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)))}})
    

    demo spreadsheet

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-14
      • 2021-06-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多