使Google电子表格公式无限重复

sli*_*ter 30 google-sheets array-formulas google-forms

好吧,我有一个Google表格,可以将信息转储到电子表格中.在每一行我都需要进行简单的计算.问题是我无法弄清楚如何在添加新行时在每个新行上重复公式.

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

例如,这用于跟踪时间,因此每个行都有一个In Time单元格和Out Time单元格.我希望有一个名为Time Spent的列,它将从时间中减去它们的时间,以确定它们花了多少时间.但由于行数无限,因此我无法进入并复制公式.

如果有人有任何想法我会非常感激.我一直在四处寻找,我所能找到的只是人们说使用填充手柄手动复制公式,这不是我想要的.

Bri*_*ius 54

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

=ARRAYFORMULA(B2:B - A2:A)
Run Code Online (Sandbox Code Playgroud)

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

  • 没关系我想出来= ARRAYFORMULA(如果(F2:F ="?","?",F2:F - E2:E))非常感谢你指出我正确的方向. (3认同)
  • 非常感谢,这正是我所需要的.几个月来我一直在寻找它,但却找不到直接的答案.还有一个问题,因为Array Formula语法仍然让我感到有点兴奋,我将如何在那里实现if语句.例如,我想要像IF(B2 ="?","?",B2-A2) (2认同)

Tmd*_*ean 7

如果由于某种原因您发现在您的情况下使用arrayformula很棘手,另一种选择是使用具有写入其中的公式的查询在另一个工作表上创建表的镜像.

例如,如果您在A列和B列中有数字,并将公式添加到一起:

=query(Data!A:B, "select A, B, A + B")
Run Code Online (Sandbox Code Playgroud)

这种方法的好处在于,您通常希望对表单数据进行聚合和汇总,并且可以通过在用于应用公式的同一查询中执行此操作,从而一举两得.

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

=query({Data!A:B, arrayformula(Data!A:A+Data!B:B)},
  "select Col1, Col2, Col3")
Run Code Online (Sandbox Code Playgroud)

请注意列不再用字母引用,而是用Col1,Col2等引用.