寻找 Google Sheet 数组公式

Looking for a Google Sheet Array Formula

我正在 Google Sheet 中寻求帮助 - B 列的数组公式(附在类似代码段中)。我们可以通过带有拖动选项的简单公式(在 B2 上)来实现它。有没有不用手动拖动公式的更好的方法呢

任何帮助将不胜感激。提前致谢。

为此我需要一个帮助列:

B3:

=ArrayFormula(IF(A3:A10=A2:A9,0,1))

C3:

=ArrayFormula(SUMIF(ROW(A3:10),"<="&ROW(A3:A10),B3:B10)+B2)

如果要跳过结束行号

B2:

=ArrayFormula({1;IF(A3:A="",,IF(A3:A=A2:A,0,1))})

C2:

=ArrayFormula(IF(B2:B="",,SUMIF(ROW(A2:A),"<="&ROW(A2:A),B2:B)))

删除 B2:B 中的所有内容并将以下内容放入 B2:

=ArrayFormula(IF(A2:A="",,VLOOKUP(TEXT(ROW(A2:A),"00000")&A2:A,{FILTER({TEXT(ROW(A2:A),"00000")&A2:A;""},{A2:A;""}<>"",{A2:A;""}<>A:A),SEQUENCE(COUNTA(FILTER(A2:A&ROW(A2:A),A2:A<>"",A2:A<>{A3:A;""})))},2,TRUE)))

您会注意到在整个公式范围内都带有一个分号和一组空引号,所有这些都包含在大括号 { } 中。这些使我们能够形成等长的虚拟范围,以与 运行 整列的实际范围进行比较。

TEXT(ROW(A2:A),"00000")&A2:A 将每一行(格式为“00000”以便长度统一)与 A2:A 的 A 列的内容串联起来。然后 FILTER 仅过滤内容与上一行内容不匹配的串联。第二个虚拟列由 SEQUENCE 形成,它在第一个 FILTER 的变体上使用 COUNTA 来了解过滤了多少项目。

VLOOKUP 然后在筛选列表中查找 A2:A 每个 行的 TEXT(ROW(A2:A),"00000")&A2:A 串联(不仅仅是筛选的行)和 returns SEQUENCE 号码。因为“00000”格式的行的顺序将是精确的升序,我们可以使用TRUE作为VLOOKUP的最后一个参数,如果完全匹配,它将回落到最接近的前一个匹配项未找到,因此为重复内容生成相同的 SEQUENCE 数字。