Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google sheets Google电子表格,与arrayformula在同一列中的上述行单元格的操作_Google Sheets - Fatal编程技术网

Google sheets Google电子表格,与arrayformula在同一列中的上述行单元格的操作

Google sheets Google电子表格,与arrayformula在同一列中的上述行单元格的操作,google-sheets,Google Sheets,我在列的第一行中有arrayformula,因此我的值和计算可以从第2行开始,并适用于所有列的长度 我有这样的情况: 我需要一个简单的算术运算: 每行减去同一列的上述值 我正在使用: =arrayformula(IF(row(A:A)=1; "What I have now"; IF(ISBLANK(A:A); ""; A1:A-A2:A))) 但正如你所看到的,这是错误的 怎么做 更新问题: 然后在第二张表中,我需要一个列中有一些空白单元格的求和运算: 怎么做 如果您想将数组公式放在标

我在列的第一行中有
arrayformula
,因此我的值和计算可以从第2行开始,并适用于所有列的长度

我有这样的情况:

我需要一个简单的算术运算:

每行减去同一列的上述值

我正在使用:

=arrayformula(IF(row(A:A)=1; "What I have now"; IF(ISBLANK(A:A); ""; A1:A-A2:A)))
但正如你所看到的,这是错误的

怎么做

更新问题:

然后在第二张表中,我需要一个列中有一些空白单元格的求和运算:

怎么做


如果您想将数组公式放在标题中,这有点奇怪,因为您需要允许公式从技术上访问第0行,我们可以通过构造范围来实现这一点

=ArrayFormula(IF(
  --(ROW(A1:A) > 2) + -ISBLANK(A1:A) = 1; 
  {0; A1:A} - {0; A2:A; 0}; 
  ""))
-(行(A1:A)>2)+-ISBLANK(A1:A)=1
检查是否填充了该行,而不是前两行中的一行,其方式与数组公式配合良好

{0;A1:A}-{0;A2:A;0}
执行以下操作:

0   Data   156    123   110    95    42
-   -     -      -     -     -     -
0   156    123    110    95    42     0
=   =     =      =     =     =     =  
0    33     13     15    53    42    42
N     N      Y      Y     Y     Y     N <- Is shown  
^     ^                               ^
|     |                               Because Row is blank
|     |
Because row not > 2, thus it is never evalauated even though the second would cause an error
0数据156 123 110 95 42
-   -     -      -     -     -     -
0   156    123    110    95    42     0
=   =     =      =     =     =     =  
0    33     13     15    53    42    42
因此,即使第二个将导致错误,也不会对其进行评估

我认为这相当棘手。问题是,在数组公式中,每个数组中的单元格数必须匹配-如果从第1行开始的数组与从第2行开始的数组一直到电子表格的底部,则不能将它们混合在一起

这里有一种方法可以得到你想要的结果

=arrayformula({"What I need";"";offset($A$1,1,0,count(A:A)-1)-offset($A$1,2,0,count(A:A)-1)})

你将需要改变你的想法;而且,对于您的区域设置

我使用{}符号建立了一个数组来定义元素。在我所在的地区;表示转到下一行,因此我将前两个单元格直接定义为字符串。之后,我选择使用偏移量得到A2:A5范围(A1下1行,0行,4个单元格高),然后减去A3:A6范围(A1下2行,0行,4个单元格高),这样就得到了其他4个单元格

B1 "What I need"
B2 ""
B3 A3-A2=33
B4 A4-A3=13
B5 A5-A4=15
B6 A6-A5=53
但是需要一个IF语句来添加数字之间是否有空白单元格

在更新问题的特殊情况下,D列中的数字少于C列中的数字,公式为

=arrayformula({"Special Case";"";offset($D$1,1,0,count(D:D))+offset($C$1,2,0,count(D:D))})
但在任何地方都有空白单元格的一般情况下,您必须测试所有内容

=arrayformula({"General Case";"";if(offset($D$1,1,0,rows(C:C)-2)="","",if(offset($C$1,2,0,Rows(C:C)-2)="","",offset($D$1,1,0,rows(C:C)-2)+offset($C$1,2,0,Rows(C:C)-2)))})

汤姆,行得通。你能把它解释得更多更好吗?给我的答案加上解释。好的。谢谢,请问这怎么可能是一个IF检查空白单元格呢?我指的是数字之间的空白单元格。如果在末尾有任何空白单元格,那么它会很好,因为计数函数计算出要计算多少个数字,如果在列的中间有空单元格?你能用IF写出这个公式吗?