Google会使用arrayformula和range规则

时间:2018-09-06 07:47:47

标签: google-sheets

我正在使用arrayformula寻找一个求和公式:

ARRAYFORMULA(SUMIF(ROW(A1:A10), "<=" & ROW(A1:A10), B1:B10))

我以前使用过arrayformulas,但是主要是为了简单的算术,所以我试图把头缠在这上面。

我不清楚的原因是,我不知道ARRAYFORMULA使用范围或使用标量值的规则。

如果将其制成表格,它会变成这样:

row 1: SUMIF(ROW(A1:A10), "<=" & ROW(A1), B1:B10))
row 2: SUMIF(ROW(A1:A10), "<=" & ROW(A2), B1:B10))
...
row n: SUMIF(ROW(A1:A10), "<=" & ROW(An), B1:B10))

但这实际上不起作用,因为根据文档,ROW如果不在ARRAYFORMULA中使用,则不会像这样工作:

ROW([cell_reference]) if cell_reference is a range more than one cell wide and the formula is not used as an array formula, only the numeric value of the first row in cell_reference is returned.

看看SUMIF的语法是: SUMIF(range, criterion, [sumrange])

我是否正确理解ARRAYFORMULA的规则是:

  • 如果ARRAYFORMULA中的函数参数应该是标量(例如,准则),并且给出了一个范围,它将在迭代该范围的单元格中扩展

  • 如果ARRAYFORMULA中的函数参数应该是范围(范围和范围),并且给出了范围,则它将范围传递给公式

所以,问题是:

在上面粘贴了公式的情况下,逐行到底发生了什么?ROW的行为如何? ROW是否“知道”它正在数组公式中使用并且表现不同?

0 个答案:

没有答案