【发布时间】:2020-09-16 01:24:09
【问题描述】:
我想调整一个数组公式,我试图用它来将一组来自 Google 表单的响应转换为链接的 Google 表格单元格中的单个“列表”。
这是 Google 表格的简化模型:https://docs.google.com/spreadsheets/d/1BKgjGK2RbXC5FkCgBOU53dLEb3fDeQADujenrqRgnT0/edit?usp=sharing
如您所见,我在 A 列的标题中“隐藏”了一个有效的数组公式,它从每行的 B:K 列中获取内容,并用换行符转置它们,以便在每行开头的第一个单元格(A2、A3、A4 等)为了便于参考,这里是数组公式:
=ARRAYFORMULA({"Points to Develop";
transpose(query(transpose ($B$2:$B&CHAR(10)&$C$2:$C&CHAR(10)&$D$2:$D&CHAR(10)&$E$2:$E&CHAR(10)&$F$2:$F&CHAR(10)&$G$2:$G&CHAR(10)&$H$2:$H&CHAR(10)&$I$2:$I&CHAR(10)&$J$2:$J&CHAR(10)&$K$2:$K)
))})
我遇到的问题是,一旦提交了新的 Google 表单,公式就会停止工作,因为新的响应行到达顶部并“将公式向下推”/使所有内容不对齐,当我想要的只是让它保持原位并在每次提交表单时自动运行。您可能可以通过我有限的技术术语来判断,我在这方面非常新手!
我该如何修正这个公式,或者是否有更简单或更好的替代方案可以达到相同的结果?
【问题讨论】:
-
如果我对您的理解正确,您在电子表格中附加了一个表格,每次提交时都会将数据添加到您的工作表中,并且提交的数据会与您的公式混淆。在这种情况下,我会考虑(1)将 ARRAYFORMULA 放在与获取提交数据的表单不同的表单(选项卡)中,或者(2)完全摆脱公式并使用 Apps Script
onFormSubmit触发器代替,可用于在提交表单时执行一些操作,无需任何公式。无论如何,提交的数据如何与您的公式混淆? -
感谢您的建议。在解决了这个问题后,我突然意识到像您的选项 (2) 这样的解决方案可能是解决方案:我已经使用 Apps 脚本来获取 FormSubmit 上的“编辑”链接,这样我就可以轻松返回并稍后添加/编辑内容。但是,我不知道对于我在这里概述的情况需要什么样的脚本。您的选项 (1) 听起来很有希望 - 我会调查的。回覆。您的最后一个问题,提交的数据通过关闭/关闭所有单元格引用与我的公式混淆:$B$2:$B 变为 $B$3:$B 等,因此公式不会在新/顶行上运行.
-
我不确定表单接收到什么数据以及在发生这种情况时应该如何管理它。如果你能再澄清一点,我愿意发布答案。
-
谢谢,Iamblichus。 Google 表单是一种非常简单的问卷式表单,大多数问题(和答案)都是文本,可以是开放文本(简短答案/段落)或预设(下拉/复选框网格/等)。正如我在下面解释的那样,我找到了一个适合我的目的的解决方案(大概不管被转置的单元格的内容),所以我很乐意使用它并对其进行微调。感谢您提供有用的建议和问题。
标签: google-sheets transpose array-formulas google-forms