繁体   English   中英

如何根据其他信息有条件地计算新日期?

[英]How can I calculate a new date conditionally based on other information?

我有一个由Google Form填充的Google Sheet 我正在使用Google Apps 脚本添加一些额外的功能。 请随时根据需要访问和修改这些内容以获得帮助。

根据表单的答案,我需要返回一个新日期,该日期会在表单提交时考虑时间戳。

这是我需要做的一个愚蠢的例子,但让我们把它想象成订购一辆新车,它的颜色决定了它需要多长时间。

颜色
丰田 红色的
本田 蓝色的
特斯拉 绿色的

我需要编写一个条件 IF 语句,根据订购的颜色确定需要多少周才能拿到车。

- 红色的 蓝色的 绿色的
丰田 1 3 5
本田 2 4 6
特斯拉 1 1 1

因此,如果您订购红色的丰田,则需要一周时间。 如果您订购绿色的丰田,则需要 5 周时间。 如果你订购一辆特斯拉,不管什么颜色都真的在一周内。 ETC...

我首先在表格中编写了一些语言来获取 A 列中的时间戳,并在其中添加适当的时间:

=IFS(AND(B2 = "Toyota",C2 = "Red"),A2 + 7,AND(B2="Toyota",C2="Blue"), A2 + 21,AND(B2="Toyota",C2="Green"), A2 + 35,AND(B2 = "Honda",C2 = "Red"),A2 + 14,AND(B2="Honda",C2="Blue"), A2 + 28,AND(B2="Honda",C2="Green"), A2 + 42,AND(B2 = "Tesla"),A2 + 7)

然后我把它拖到整列的长度上,这样它就会在提交时填写。

在此处输入图像描述

但是,当您填写 Google 表单时,它会覆盖整行中的内容,从而消除我在该列中的内容。

现在我意识到代码需要用 Google Apps Script 编写并作为值返回。

需要对我的 IFS 语句进行哪些修改才能使其与 Google Apps 脚本兼容?

为了更简单的方法, QUERY实际上可以解决您的问题,而无需像评论中提到的那样执行 Broly 脚本。 您可以尝试的一种方法是创建一个新工作表。 然后让该表在A1上包含此公式

公式(A1):

=query('Form Responses 1':A:C)

这将从表单响应中复制 A:C 范围,然后复制/粘贴 D 列上需要的日期列的公式。

Output:

输出

笔记:

  • 由于您只复制了 A:C,因此不会影响 D 列公式。
  • 您在新工作表中的 A:C 将自动更新,然后您在 D 上插入的公式将在填充后重新计算。
  • 如果 A:C 仍然为空,则在 D 列的公式中添加IFNA以不显示#N/A

公式(D2):

=IFNA(IFS(AND(B2 = "Toyota",C2 = "Red"),A2 + 7,AND(B2="Toyota",C2="Blue"), A2 + 21,AND(B2="Toyota",C2="Green"), A2 + 35,AND(B2 = "Honda",C2 = "Red"),A2 + 14,AND(B2="Honda",C2="Blue"), A2 + 28,AND(B2="Honda",C2="Green"), A2 + 42,AND(B2 = "Tesla"),A2 + 7), "")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM