我使用下面的函数

=DAYS360(A2, A35)

计算我列中两个日期的差值。然而,列一直在扩大,我目前必须手动更改“A35”,因为我更新了我的电子表格。

是否有一种方法(在谷歌表)找到该列中的最后一个非空单元格,然后在上面的函数中动态设置该参数?


当前回答

我走了一条不同的路。因为我知道我将逐个向行/列添加一些东西,所以我通过首先计算有数据的字段来找出最后一行。我将用一列来演示这一点:

=COUNT(A5:A34)

假设它返回了21。A5在第4行,所以我需要从第4行开始算第21个位置。我可以用间接的方法来做到这一点,像这样:

=INDIRECT("A"&COUNT(A5:A34)+4)

它正在查找数据行的数量,并返回一个我用作索引修饰符的数字。

其他回答

也许还有更有说服力的方法,但这是我想到的方法:

查找列中最后一个填充单元格的函数是:

=INDEX( FILTER( A:A ; NOT( ISBLANK( A:A ) ) ) ; ROWS( FILTER( A:A ; NOT( ISBLANK( A:A ) ) ) ) )

所以如果你把它和你当前的函数结合起来,它会是这样的:

=DAYS360(A2,INDEX( FILTER( A:A ; NOT( ISBLANK( A:A ) ) ) ; ROWS( FILTER( A:A ; NOT( ISBLANK( A:A ) ) ) ) ))

如果列仅按连续添加的日期展开 就像在我的情况下-我只是使用MAX函数来获取最后的日期。

最终公式为:

=DAYS360(A2; MAX(A2:A)) 

这对我很有用。获取谷歌表中A列的最后一个值:

=index(A:A,max(row(A:A)*(A:A<>"")))

(如果有空白行,它也会跳过空白行)

对于一行:

=ARRAYFORMULA(INDIRECT("A"&MAX(IF(A:A<>"", ROW(A:A), ))))

对于列:

=ARRAYFORMULA(INDIRECT(ADDRESS(1, MAX(IF(1:1<>"", COLUMN(1:1), )), 4)))

业余爱好者的方法是“=CONCATENATE(“A”,COUNTUNIQUE(A1:A9999))”,其中A1是列中的第一个单元格,A9999比我期望的任何条目都要低。这个生成的a#可以根据需要与INDIRECT函数一起使用。