在Google表格中添加带有ARRAYFORMULA的标题行

时间:2017-03-06 23:01:29

标签: google-sheets spreadsheet google-sheets-api

我看了tutorial,作者使用IF statementARRAYFORMULA function将标题行添加到数据列中。链接被提供给文档;但是,有关如何使用ARRAYFORMULA的示例,请参阅此answer

以下是一个例子:

enter image description here

我可以通过在C中放置以下公式来填充C1列:

=ARRAYFORMULA(if(row(A:A) = 1, "spent", B:B - A:A))

我对语法感到困惑。我了解X:X引用了整个X列,但我不明白它是如何用于检查我们是否在一个上下文中位于单元格A1然后用于应用​​质量公式在另一个背景下。

  • 以上行如何运作?
  • 你能用一些例子来说明吗?

3 个答案:

答案 0 :(得分:8)

在我看来,您所学到的信息让您期望row(A:A)=1转换为A1行?

它的工作方式略有不同,现在使用它的语法基本上是说A:A中的任何一行的值是1,然后写“花”其他减去B-A

我的建议:

使用文字数组制作标题,然后使用if(arrayformula)仅用值填充行,以获得美观​​:

示例:

={"Spent";arrayformula(if(isnumber(A2:A),B2:B-A2:A,))}

说明:

{}允许你构建一个文字数组,并且使用分号而不是逗号允许你垂直堆叠你的单元格,然后我们检查A列中是否有值,如果是,则减去来自B的A,否则留空。

enter image description here

答案 1 :(得分:1)

为什么不只将列标题直接放在第一行单元格上,并使用A2:A,B2:B语法从第二行开始数组公式?

如果公式中不必包含某些东西,最好将其直接放在单元格上-其他人更容易理解正在发生的事情,公式将更简单。

答案 2 :(得分:0)

如果将数组公式放在第2行中,并且有人对数据进行排序,则arrayformula将移动。如果它在标题行中,则不太可能发生这种情况。

您还可以使用IFS函数来实现与数组相似的效果,

=arrayformula(ifs(row(A1:A)=1,"Spent",A1:A="",,True,B1:B-A1:A)

在这里,第一个条件检查行号,如果它是第ONE行,则插入一个列标题。

第二个条件A1:A="",,-确保忽略空行。

第三条件True(ELSE)执行计算。

此方法还允许根据需要对不同的行执行不同的计算。