使用 Google 工作表中的数组公式递增组中的列

Incrementing a column in a group using an Array Formula in Google Sheets

我在尝试获取数组公式来递增列并在满足条件时重新开始递增时遇到困难。

这是我正在尝试实现的示例,但这是手动完成的。如果这可以在数组公式中工作,那就太好了,因为我们将添加更多行而不是将公式拖下来。

[根据原文反馈更新post]

Link 到 sheet: https://docs.google.com/spreadsheets/d/1K00LRFNrN99fFXQO1tzp8jjZeCuTxwENXNGuLj0K0ao/edit?usp=sharing

Example

如有任何想法或建议,我们将不胜感激。

尝试:

=INDEX(IFNA(1*IF(REGEXMATCH(A2:A, "Day"), 0, REGEXEXTRACT(A2:A, "(\d+)"))))

我已将新的 sheet(“Erik Help”)添加到您的样本传播sheet。它在 B1 中包含以下公式:

=ArrayFormula({"ID Index"; IF(A2:A="",, IF( REGEXMATCH(LOWER(A2:A),"team"), 0, ROW(A2:A) - VLOOKUP(ROW(A2:A), FILTER(ROW(A2:A), REGEXMATCH(LOWER(A2:A),"team")), 1, TRUE)))})

header 文本包含在公式中。您可以随意更改。

如果 A2:A 中的单元格为空,则 B2:B 中的相应单元格也为空。

如果 REGEXMATCHA2:A 中的单元格的小写呈现中找到与“team” 的匹配项,将为 B2:B 中的相应单元格返回 0。

否则,VLOOKUP 将在 FILTERed 数组中查找每个剩余的行号,该数组仅包含出现“团队”一词的那些行号。 (在您的样本集中,这将是 2、8、12)。当找不到完全匹配时(对于任何剩余行都不会),TRUE 告诉 VLOOKUP,由于搜索数组严格按升序排列,我们希望它“返回”到找到的最新值。在每种情况下,都会从实际行号中减去包含“team”的最近行的返回行号,以生成循环递增编号 1、2、3 等。