分享

Excel公式技巧63:查找最后一行

 hercules028 2020-11-07

excelperfect

Excel VBA中,可以使用End属性来获取最后一行,例如语句:

Range('A' &Rows.Count).End(xlUp).Row

可以获得列A中最后一行,即从底向上最后一个含有内容的单元格所在的行。

如果想要使用公式来获取某列中最后一行呢?如下图1所示。

1

可以看到,我们使用了LOOKUP函数,公式为:

=LOOKUP(2,1/(B:B<>''),B:B)

公式中:

B:B<>''

将生成数组:

{FALSE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;FALSE;FALSE;…;FALSE}

使用1来除以这个数组,得到数组:

{#DIV/0!;1;1;1;1;1;1;#DIV/0!;#DIV/0!;…; #DIV/0!}

LOOKUP函数查找该数组中接近2的最后一个值的位置并返回相应位置的列B中的值,即单元格B7中的值。

当要查找的列中包含错误值,特别是最后一个非空单元格中包含错误值时,则需将公式调整为:

=LOOKUP(2,1/(NOT(ISBLANK(B:B))),B:B)

如果列中单元格由数值与文本混合,可以使用下面的公式获取最后一个数值:

=LOOKUP(2,1/(ISNUMBER(B:B)),B:B)

要获取最后一个值所在的行的行号,可使用公式:

=LOOKUP(2,1/(B:B<>””),ROW(B:B))

小结

通常,在查找值时我们会想到VLOOKUP函数,然而LOOKUP函数在某些情形下却能够巧妙地得到结果。并且,LOOKUP函数的公式接受数组而并不需要按Ctrl+Shift+Enter键。

欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识。

欢迎到知识星球:完美Excel社群,进行技术交流和提问,获取更多电子资料。

完美Excel社群2020.11.6动态

#VBA# Excel编程周末速成班第8课:处理日期和时间

主要内容:Date数据类型如何存储日期和时间信息;从文字日期创建日期值;从系统时钟读取日期和时间;获取有关日期的详细信息;格式化日期和时间以供显示

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多