excel - 列中最后一个非空单元格

标签 excel worksheet-function

有人知道在 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)

下图显示了差异:

enter image description here

关于excel - 列中最后一个非空单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5441885/

相关文章:

C# 查找空单元格并使用 ClosedXml 将其写入其中

EXCEL VBA 在指定位置打开 Word、编辑和另存为。

vba - 从列中查找值并快速返回其单元格的行号

excel - 删除重复值但保留其余行值

java - Excel VBA函数转Java poi

java - 如何使用 Docx4J 向现有表添加行

excel - 对列中的所有行使用一个公式?

excel - 使用 Excel 匹配结果作为列选择

excel - 将 Excel 中的日期字段转换为文本