【问题标题】:Google Forms responses create new row in spreadsheet, offsetting my query谷歌表单回复在电子表格中创建新行,抵消我的查询
【发布时间】:2016-01-27 13:31:30
【问题描述】:

我有一个模板表单和一个模板电子表格。默认情况下,它们是未链接的。我有一个脚本可以复制它们,将它们发送到驱动器中的新客户端文件夹并根据客户端名称链接它们。这个想法是让客户登录到网站帐户并提交表单。

我在电子表格中使用 *=QUERY('Form Responses'!B2:H,"select ") 来收集来自 Sheet #1 的数据(响应) 到表 #2。我必须制作一个脚本来自动更改 Sheet #1 的名称以保持静态。但是我遇到了一些问题。

当响应生成时,它们将第 2 行向下推,从而我的查询调整为 B3。现在我要么需要通过某种方式在脚本中设置公式来解决这个问题,所以它不会调整,或者我需要一个脚本来自动发布/响应表单,并将“0”作为值并简单地设置B3 的公式。无论哪种方式对我来说都很好,因为如果存储在 B2 中的响应为“0”,它不会影响计算,但我需要它是自动的。

有什么建议吗?

【问题讨论】:

  • 也许 INDIRECT 函数可以使电子表格更加静态?像 =INDIRECT("QUERY('Form Responses'!B2:H,'select ')") 我不知道它是否有效......

标签: google-apps-script google-sheets google-forms


【解决方案1】:

“通常的程序”是提交第一个响应,然后添加公式,但在“模板场景”中,这并不方便。另一种方法是使用公式连接列标题和第二行的公式。 IE。将以下公式添加到第一行的单元格中:

={"Column Header";QUERY('Form Responses'!B2:H,"select B")}

【讨论】:

    【解决方案2】:

    尝试将公式更改为

    =QUERY('Form Responses'!$B$2:H,"select ")
    

    $ 更改使公式中的单元格成为绝对单元格而不是相对单元格,并且应该停止更改公式中的单元格。

    【讨论】:

    • 我试过了,但这不是问题所在。我实际上使用 B:H 来摆脱行问题。所以现在它几乎就在那里。它做的一切都很好,但是当工作表和表单被复制然后链接时,需要再次手动输入查询公式。它不会自行提取数据。有什么想法吗??
    • 如果您只是想将数据复制到另一个电子表格,为什么不使用 ImportRange 函数并将 B:H 范围导入到 Sheet 2 中?
    • 我知道你的意思,它工作得很好,但是有一个问题。复制发生在脚本中,无论我使用 ImportRange 还是 Query 在复制发生后它都不会在第二张表中显示数据。我必须手动进入,选择带有公式的单元格,然后按 ENTER。我想自动化这个过程
    猜你喜欢
    • 2017-04-28
    • 1970-01-01
    • 1970-01-01
    • 2016-05-18
    • 2021-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多