我使用下面的函数

=DAYS360(A2, A35)

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

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


当前回答

我最喜欢:

=INDEX(A2:A,COUNTA(A2:A),1)

所以,对于OP的需求:

=DAYS360(A2,INDEX(A2:A,COUNTA(A2:A),1))

其他回答

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

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

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

如果A2:A包含连续的日期,则INDEX(A2:A,COUNT(A2:A))将返回最后一个日期。最后的公式是

=DAYS360(A2,INDEX(A2:A,COUNT(A2:A)))

Ben Collins是谷歌床单专家,他的网站上有很多免费的建议,还提供课程。他有一篇关于动态范围名称的免费文章,我在许多项目中都使用了这篇文章作为基础。

https://www.benlcollins.com/formula-examples/dynamic-named-ranges/

免责声明,我没有获得任何参考本的网站。

这是我使用动态范围的一个项目的截图:

单元格D3的公式如上所示,但这是一个数组公式:

=ArrayFormula(MAX(IF(L2s!A2:A1009<>"",ROW(2:1011))))

单元格D4的公式如下:

="L2s!A2:E"&D3

对于一行:

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

对于列:

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

对于严格地查找列中的最后一个非空单元格,这应该工作…

=LOOKUP(2^99, A2:A)