Excel公式技巧63:查找最后一行
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数据类型如何存储日期和时间信息;从文字日期创建日期值;从系统时钟读取日期和时间;获取有关日期的详细信息;格式化日期和时间以供显示