使用 Google 工作表中的数组公式递增组中的列
Incrementing a column in a group using an Array Formula in Google Sheets
我在尝试获取数组公式来递增列并在满足条件时重新开始递增时遇到困难。
这是我正在尝试实现的示例,但这是手动完成的。如果这可以在数组公式中工作,那就太好了,因为我们将添加更多行而不是将公式拖下来。
[根据原文反馈更新post]
- A 列包含姓名和团队列表。
- 名字已经组织成团队。
- 目的是遍历每一行并提供一个索引从 1 开始的名称。
- 然后当在 A 列中找到新团队时,索引再次从 0 开始。
- 目的是使其成为一个数组公式,以避免在添加更多行时必须手动重新添加公式。
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
中的相应单元格也为空。
如果 REGEXMATCH
在 A2:A
中的单元格的小写呈现中找到与“team” 的匹配项,将为 B2:B
中的相应单元格返回 0。
否则,VLOOKUP
将在 FILTER
ed 数组中查找每个剩余的行号,该数组仅包含出现“团队”一词的那些行号。 (在您的样本集中,这将是 2、8、12)。当找不到完全匹配时(对于任何剩余行都不会),TRUE
告诉 VLOOKUP
,由于搜索数组严格按升序排列,我们希望它“返回”到找到的最新值。在每种情况下,都会从实际行号中减去包含“team”的最近行的返回行号,以生成循环递增编号 1、2、3 等。
我在尝试获取数组公式来递增列并在满足条件时重新开始递增时遇到困难。
这是我正在尝试实现的示例,但这是手动完成的。如果这可以在数组公式中工作,那就太好了,因为我们将添加更多行而不是将公式拖下来。
[根据原文反馈更新post]
- A 列包含姓名和团队列表。
- 名字已经组织成团队。
- 目的是遍历每一行并提供一个索引从 1 开始的名称。
- 然后当在 A 列中找到新团队时,索引再次从 0 开始。
- 目的是使其成为一个数组公式,以避免在添加更多行时必须手动重新添加公式。
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
中的相应单元格也为空。
如果 REGEXMATCH
在 A2:A
中的单元格的小写呈现中找到与“team” 的匹配项,将为 B2:B
中的相应单元格返回 0。
否则,VLOOKUP
将在 FILTER
ed 数组中查找每个剩余的行号,该数组仅包含出现“团队”一词的那些行号。 (在您的样本集中,这将是 2、8、12)。当找不到完全匹配时(对于任何剩余行都不会),TRUE
告诉 VLOOKUP
,由于搜索数组严格按升序排列,我们希望它“返回”到找到的最新值。在每种情况下,都会从实际行号中减去包含“team”的最近行的返回行号,以生成循环递增编号 1、2、3 等。