我使用下面的函数
=DAYS360(A2, A35)
计算我列中两个日期的差值。然而,列一直在扩大,我目前必须手动更改“A35”,因为我更新了我的电子表格。
是否有一种方法(在谷歌表)找到该列中的最后一个非空单元格,然后在上面的函数中动态设置该参数?
我使用下面的函数
=DAYS360(A2, A35)
计算我列中两个日期的差值。然而,列一直在扩大,我目前必须手动更改“A35”,因为我更新了我的电子表格。
是否有一种方法(在谷歌表)找到该列中的最后一个非空单元格,然后在上面的函数中动态设置该参数?
当前回答
也许还有更有说服力的方法,但这是我想到的方法:
查找列中最后一个填充单元格的函数是:
=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 ) ) ) ) ))
其他回答
对于一行:
=ARRAYFORMULA(INDIRECT("A"&MAX(IF(A:A<>"", ROW(A:A), ))))
对于列:
=ARRAYFORMULA(INDIRECT(ADDRESS(1, MAX(IF(1:1<>"", COLUMN(1:1), )), 4)))
这对我很有用。获取谷歌表中A列的最后一个值:
=index(A:A,max(row(A:A)*(A:A<>"")))
(如果有空白行,它也会跳过空白行)
我最喜欢:
=INDEX(A2:A,COUNTA(A2:A),1)
所以,对于OP的需求:
=DAYS360(A2,INDEX(A2:A,COUNTA(A2:A),1))
这将给出最后一个单元格的内容:
=indirect("A"&max(ARRAYFORMULA(row(a:a)*--(a:a<>""))))
这将给出最后一个单元格的地址:
="A"&max(ARRAYFORMULA(row(a:a)*--(a:a<>"")))
这将给出最后一个单元格的行:
=max(ARRAYFORMULA(row(a:a)*--(a:a<>"")))
也许你更喜欢脚本。这个脚本比上面其他人发布的大脚本要短得多:
进入脚本编辑器,保存脚本:
function getLastRow(range){
while(range.length>0 && range[range.length-1][0]=='') range.pop();
return range.length;
}
完成后,你只需要在一个单元格中输入这个:
=getLastRow(A:A)
计算列A中的最新日期与单元格A2中的日期之间的差值。
=MAX(A2:A)-A2