数组公式参考上面的单元格

问题描述 投票:0回答:2

我有这个困扰我的问题。

我有一张谷歌表格,我需要在上面制作序列号。

![AJ2;AJ] (https://i.stack.imgur.com/IZ8P9.png)

带有 AH-202302,然后是序列号。 你可以猜到,2023 是年,02 是指 B2:B 列的月份。

然后我有这个公式: enter image description here

=ARRAYFORMULA(IF(ISBLANK(B3:B);;IF((AJ3:AJ)<>(AJ2:AJ);1;AK2:AK+1)))

从 AK3 开始。我将 AK2 单元格设置为 1,所以我可以尝试简单地将 1 添加到数组公式的下一个单元格。

正如你所猜到的,它会触发循环依赖,因为我的数据很大,如果我打开迭代计算,我的工作表就会被冻结。

所以,请你帮我解决这个问题。

我只需要一个数组公式,将 1 添加到上面的单元格,并且最好不要打开循环依赖,或者如果需要的话,不要冻结我的工作表。

谢谢大家的帮助

google-sheets array-formulas circular-dependency
2个回答
0
投票

如果只需要加1,可以使用SEQUENCE。例如:

=Sequence(COUNTA(AJ2:AJ))

对于其他情况,您可以使用 SCAN 创建一个引用前一个单元格的 ARRAYFORMULA,但我认为这样更简单

更新:

=MAP(B2:B,AJ2:J,LAMBDA(bval,ajval,IF(ISBLANK(ajval),,COUNTIFS(B2:bval,">="&bval,AJ2:ajval,ajval))))

0
投票

我想回答我自己的问题..

我已经解决了这个问题。

所以,您只需要

COUNTIFS
功能;

这是我的问题的解决方案:

=arrayformula(if(isblank(AJ2:AJ);;Countifs(AJ$2:AJ;AJ2:AJ;B2:B;"<="&B2:B)))

所以这个公式正在计算

AJ2:AJ
的值的数量并使用 2 个标准。

Countifs(AJ$2:AJ;AJ2:AJ...
  1. 首先它计算

    AJ2:AJ
    中一个值的个数。
    $
    上的
    AJ$2
    符号用于锁定表,因此它不会沿着数组公式向下移动。

    ....;B2:B;"<="&B2:B)))

  2. 则第二个条件根据

    B2:B
    中的递增数,即timestamp列,沿着引用的值的数组公式进行计数。您可以用
    =row()
    函数替换时间戳列以获得相同的结果。

就是这样。希望有帮助。

*)免责声明,因为我是这方面的新手,无论如何,我很可能是错的。所以如果是这样请纠正我。

© www.soinside.com 2019 - 2024. All rights reserved.