32

好的,所以我有一个将信息转储到电子表格中的 Google 表单。在每一行上,我都需要完成一个简单的计算。问题是我不知道如何让它在添加新行时在每个新行上重复一个公式。

是的,我知道如何使用填充句柄来复制公式,但我希望它自动添加公式,而不是我手动复制它。

例如,这用于跟踪时间,因此每行都有一个用于In Time的单元格和一个用于Out Time的单元格。我想要一个名为Time Spent的列,它将从 out time 中减去他们的 in time 以确定他们花费了多少时间。但是由于行数是无限的,因此我进入并复制公式是不切实际的。

如果有人有任何想法,我将不胜感激。我已经四处寻找很久了,我所能找到的只是人们说要使用填充手柄手动复制公式,这不是我想要的。

4

2 回答 2

59

假设In Time单元格在 A 列中,Out Time单元格在 B 列中,并且您希望Time Spent在 C 列中。将此公式放在单元格 C2 中(假设 A1、B1 和 C1 包含标题,而不是数据):

=ARRAYFORMULA(B2:B - A2:A)

ARRAYFORMULA函数指示电子表格在给定范围内迭代包含的公式,并且没有最终数字的引用引用B2:B包含电子表格中所有剩余行的范围。

于 2013-09-27T00:17:35.087 回答
8

如果由于某种原因您发现在您的情况下使用 arrayformula 很棘手,另一种选择是使用已写入公式的查询在另一张表上创建表的镜像。

例如,如果您在 A 和 B 列中有数字以及将它们相加的公式:

=query(Data!A:B, "select A, B, A + B")

这种方法的好处是您经常希望对表单数据进行聚合和汇总,并且您可以通过在用于应用公式的同一查询中执行此操作,一石二鸟。

当 Google 的查询语法在功能上存在差距时,我将提到另一个有用的技巧。实际上,您可以在将数据传递给查询函数之前将数组公式应用于数据,如下面的示例,其输出与上一个查询等效。

=query({Data!A:B, arrayformula(Data!A:A+Data!B:B)},
  "select Col1, Col2, Col3")

请注意这些列不再由字母表示,而是由 Col1、Col2 等表示。

于 2015-04-02T04:49:05.800 回答