我看了tutorial,作者使用IF statement和ARRAYFORMULA function将标题行添加到数据列中。链接被提供给文档;但是,有关如何使用ARRAYFORMULA
的示例,请参阅此answer。
以下是一个例子:
我可以通过在C
中放置以下公式来填充C1
列:
=ARRAYFORMULA(if(row(A:A) = 1, "spent", B:B - A:A))
我对语法感到困惑。我了解X:X
引用了整个X
列,但我不明白它是如何用于检查我们是否在一个上下文中位于单元格A1
然后用于应用质量公式在另一个背景下。
答案 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,否则留空。
答案 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)执行计算。
此方法还允许根据需要对不同的行执行不同的计算。