在 Google 个工作表中添加带有 ARRAYFORMULA 的标题行
Add title row with ARRAYFORMULA in Google Sheets
我看了一个tutorial where the author uses an IF statement along with the ARRAYFORMULA function to add a title row to a column of data. Links are given to the docs; however, for an example of how to use ARRAYFORMULA
see this answer。
示例如下:
我能够通过在 C1
中放置以下公式来填充 C
列:
=ARRAYFORMULA(if(row(A:A) = 1, "spent", B:B - A:A))
我对语法感到困惑。我知道 X:X
引用了整个 X
列,但我不明白它是如何被用来检查我们是否在一个上下文中的单元格 A1
然后被用来应用质量另一个上下文中的公式。
- 上面这行是怎么工作的?
- 你能举例说明吗?
在我看来,您了解到的信息让您期望 row(A:A)=1
转换为 A1 行?
它的工作原理与此略有不同,您现在使用的语法基本上是说如果 A:A 中的任何行的值为 1,则写 "spent" 否则减去 B-A
我的建议:
使用文字数组来创建 header,然后使用 if(arrayformula) 只用值填充行,为了美观:
示例:
={"Spent";arrayformula(if(isnumber(A2:A),B2:B-A2:A,))}
解释:
{}
允许您构建文字数组,使用分号代替逗号允许您垂直堆叠单元格,然后我们检查 A 列中是否有值,如果有, 从 B 中减去 A,否则留空。
为什么不直接将列标题放在第一行单元格上,并使用 A2:A、B2:B 语法从第二行开始数组公式?
如果某些东西 不必 出现在公式中,最好将其直接放在单元格上 - 其他人更容易理解发生了什么,公式也会更简单。
如果你把数组公式放在第2行,有人对数据进行排序,那么数组公式就会移动。如果它在 header 行,则不太可能发生。
你也可以使用IFS函数来实现类似数组的效果,
=arrayformula(ifs(row(A1:A)=1,"Spent",A1:A="",,True,B1:B-A1:A)
这里第一个条件检查行号,如果是行号,则插入一列Header。
第二个条件 - A1:A="",,
- 确保忽略空行。
第三个条件True
(ELSE)执行计算。
此方法还允许根据需要对不同的行执行不同的计算。
我看了一个tutorial where the author uses an IF statement along with the ARRAYFORMULA function to add a title row to a column of data. Links are given to the docs; however, for an example of how to use ARRAYFORMULA
see this answer。
示例如下:
我能够通过在 C1
中放置以下公式来填充 C
列:
=ARRAYFORMULA(if(row(A:A) = 1, "spent", B:B - A:A))
我对语法感到困惑。我知道 X:X
引用了整个 X
列,但我不明白它是如何被用来检查我们是否在一个上下文中的单元格 A1
然后被用来应用质量另一个上下文中的公式。
- 上面这行是怎么工作的?
- 你能举例说明吗?
在我看来,您了解到的信息让您期望 row(A:A)=1
转换为 A1 行?
它的工作原理与此略有不同,您现在使用的语法基本上是说如果 A:A 中的任何行的值为 1,则写 "spent" 否则减去 B-A
我的建议:
使用文字数组来创建 header,然后使用 if(arrayformula) 只用值填充行,为了美观:
示例:
={"Spent";arrayformula(if(isnumber(A2:A),B2:B-A2:A,))}
解释:
{}
允许您构建文字数组,使用分号代替逗号允许您垂直堆叠单元格,然后我们检查 A 列中是否有值,如果有, 从 B 中减去 A,否则留空。
为什么不直接将列标题放在第一行单元格上,并使用 A2:A、B2:B 语法从第二行开始数组公式?
如果某些东西 不必 出现在公式中,最好将其直接放在单元格上 - 其他人更容易理解发生了什么,公式也会更简单。
如果你把数组公式放在第2行,有人对数据进行排序,那么数组公式就会移动。如果它在 header 行,则不太可能发生。
你也可以使用IFS函数来实现类似数组的效果,
=arrayformula(ifs(row(A1:A)=1,"Spent",A1:A="",,True,B1:B-A1:A)
这里第一个条件检查行号,如果是行号,则插入一列Header。
第二个条件 - A1:A="",,
- 确保忽略空行。
第三个条件True
(ELSE)执行计算。
此方法还允许根据需要对不同的行执行不同的计算。