我使用下面的函数

=DAYS360(A2, A35)

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

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


当前回答

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

其他回答

在一列任意的非空值中选择最后一个,忽略标题单元格(A1):

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

那么下面这个求最后一个值的公式呢:

=index(G:G;max((G:G<>"")*row(G:G)))

这就是你最初任务的最终公式:

=DAYS360(G10;index(G:G;max((G:G<>"")*row(G:G))))

假设您的初始日期是G10。

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

要找到最后一个非空单元格,可以使用INDEX和MATCH函数,如下所示:

=DAYS360(A2; INDEX(A:A; MATCH(99^99;A:A; 1)))

我觉得这样更快更简单。

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

=COUNT(A5:A34)

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

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

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