Google 工作表 - 使用 ARRAYFORMULA 并根据另一个字段的值增加单元格值

Google Sheets - Increment cell value with ARRAYFORMULA and based on value from another field

我有一个正在创建的电子表格,并且有一个 ARRAYFORMULA 用于根据另一个字段递增一个字段的数量。我的公式如下所示(注意:我的行从第 4 行开始,这就是为什么有 ROW(A4:A)-3 的原因):

=ARRAYFORMULA(IF(ROW(A4:A) = 4, 1, IF(B4:B = 1, ROW(A4:A)-3, (ROW(A4:A)-3)-(B4:B - 1))))

我正在做的是创建组 (A),然后有一个序列计数器 (B),它是组内的行数。我希望结果看起来像这样,其中 A 刚刚从它停止的地方开始(注意:B 是手动输入的):

A B
1 1
2 1
3 1
3 2
3 3
4 1
5 1

然而,我的结果是这样的:

A B
1 1
2 1
3 1
3 2
3 3
6 1
7 1

我知道 ROW 为我提供了行号,但是当我尝试使用 INDEX 公式时:

=ARRAYFORMULA(IF(ROW(G4:G) = 4, 1, IF(H4:H = 1, INDEX(G4:G, ROW(G4:G)-1, 1) + 1, INDEX(G4:G, ROW(G4:G)-1, 1)))

为了获得前一个单元格的实际值,我不断闪烁,就像它卡在某种无限循环中一样。我知道我可能不需要 ARRAYFORMULA 就可以完成此操作,但是,此电子表格将被共享并包含许多其他公式,我只是不希望人们不得不从上面的行中剪切和复制这些公式并将公式全部搞砸。我正在与非技术人员打交道,他们需要一些东西来非常简单地工作。

样本: https://docs.google.com/spreadsheets/d/1FqndR4oTm_uaO7aUxYSgb3p0bZ6yBz-KnjUAD8kctd4/edit?usp=drivesdk

使用:

=ARRAYFORMULA(COUNTIFS(A4:A, A4:A, ROW(A4:A), "<="&ROW(A4:A)))


反转:

=ARRAYFORMULA(MMULT(TRANSPOSE((SEQUENCE(COUNTA(B4:B))<=
 SEQUENCE(1, COUNTA(B4:B)))*IF(INDIRECT("B4:B"&COUNTA(B4:B)+ROW(B4)-1)=1, 1)), 
 SEQUENCE(COUNTA(B4:B))^0))