有人知道在 Microsoft Excel 中查找列中最后一个非空单元格的值的公式吗?
最佳答案
使用以下简单公式速度更快
=LOOKUP(2,1/(A:A<>""),A:A)
对于 Excel 2003:
=LOOKUP(2,1/(A1:A65535<>""),A1:A65535)
它为您提供以下优势:
- 它不是数组公式
- 它是不易 volatile 的公式
说明:
-
(A:A<>"")
返回数组{TRUE,TRUE,..,FALSE,..}
-
1/(A:A<>"")
将此数组修改为{1,1,..,#DIV/0!,..}
。 - 自
LOOKUP
期望排序数组按升序顺序排列,并考虑到如果LOOKUP
函数无法找到精确匹配,它选择lookup_range
中的最大值(在我们的例子中{1,1,..,#DIV/0!,..}
)小于或等于值(在我们的例子中2
),公式找到最后一个1
数组中并从result_range
返回相应的值(第三个参数 -A:A
)。
还有一点注意 - 上面的公式没有考虑有错误的单元格(只有最后一个非空单元格有错误时您才能看到它)。如果您想考虑它们,请使用:
=LOOKUP(2,1/(NOT(ISBLANK(A:A))),A:A)
下图显示了差异:
关于excel - 列中最后一个非空单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5441885/