【发布时间】:2021-04-25 07:16:09
【问题描述】:
我找到了一些接近我想要做的选项,但没有一个完全匹配它。
请求很简单。
“表 A” - 主表(有 1 个标题行)
“表 B” - 输入表(有 1 个标题行)
“C 列” - 唯一 ID(两个工作表上的同一列)
触发器
- 工作表 B 已编辑
操作
- 脚本在 C 列的工作表 B 中查找唯一 ID,并在 C 列的工作表 A 中查找它。
- 如果找到,则工作表 A 上的相应行将替换为工作表 B 中的相应行。
- 如果找不到,则在工作表 A 的底部添加一个新行,并将工作表 B 中的整个相应行作为新记录添加到工作表底部的新行中表 A。
- 工作表 B 上的整行已删除。
重复操作,直到工作表 B 从第 2 行开始没有填充行(即不包括第 1 行标题)。
谢谢
编辑
- 为了澄清我为什么要这样做。我有一个表单正在提交并将数据发送到 Google 表格(Cognito -> Zapier -> Google 表格)。此表单的一部分涉及重复部分(行项目)。导入响应的当前方法在正确添加新响应方面没有问题,但是当更新响应时,它无法正确查找/更新重复部分的现有行。所以我打算使用表 A 作为我的主表,然后使用表 B 作为接收表。这样我就可以将每个条目(包括更新的条目)作为工作表 B 上的“新”条目提交,然后让我的脚本进行更新。
- 每次提交或更新新表单条目时,都会自动编辑表 B。 “编辑”基本上是添加一个新行并将数据填充到该行中。向触发器添加一个 1 分钟计时器可能是个好主意,这样如果要添加大量数据,它就会有时间让这种情况发生。
- 我什至与脚本专家相差甚远。我只是浏览其他人制作的不同脚本并尝试将它们组合起来以使它们为我需要的工作。我找到了将移动一行然后删除它的脚本,但它不检查要更新的匹配值。我找到了其他检查唯一值并复制的脚本,但它们不会删除另一张表上的原始行。我试图将它们结合起来,但由于我没有基础知识,我似乎无法让它发挥作用。
【问题讨论】:
-
可以使用 onChange 或 onEdit。可能 onEdit 更容易,因为在事件对象中有更多关于您当前位置的信息。
-
我无法理解你的目标。我为此道歉。那我能问一下你的目标吗? 1.关于
Sheet B is edited,你会怎么编辑?例如,包括几行的值被复制和粘贴? 2. 关于The entire respective row on Sheet B is Deleted.,在这种情况下,Sheet B 总是只有一个标题行?在这种情况下,这些值被放入表 B? 3. 可以问一下你目前剧本的问题吗? -
当你提到工作表 B 和工作表 A 有共同的 C 列时,我的第一个想法是“你为什么不插入新记录”但事实证明你正在处理工作表 B - C 列像队列一样。你能确认一下吗?到目前为止,您尝试过什么?
-
感谢您的提问。我将在我的问题中进行编辑来回答他们,因为此回复中的 500 个字符是不够的。
-
如果我们在您的工作表 B 和工作表 A 中拥有您所拥有的数据类型,这将对社区有所帮助。您能否分享一个没有敏感数据的类似电子表格?
标签: google-apps-script google-sheets copy-paste lookup unique-id