【问题标题】:Google Sheets - Increment cell value with ARRAYFORMULA and based on value from another fieldGoogle 表格 - 使用 ARRAYFORMULA 并基于另一个字段的值增加单元格值
【发布时间】:2021-10-28 04:39:15
【问题描述】:

我正在创建一个电子表格,并且我有一个 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

【问题讨论】:

  • 如果您共享一个可编辑的样本,其中的数据从第 4 行开始会更简单
  • @MattKing 那太容易了。 ;) 我用示例链接更新了我的问题

标签: arrays google-sheets google-sheets-formula transpose cumulative-sum


【解决方案1】:

使用:

=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))

【讨论】:

  • 抱歉,您可能对问题所在有一些困惑。正如我提到的,B 列是手动输入的。我正在寻找 A 列的正确编号。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-03
  • 2019-10-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-31
相关资源
最近更新 更多