分享

【Excel公式教程】要提取最后一行数据用什么公式?(上篇)

 Excel学习园地 2021-06-29


90本电子书:Excel、Word、PPT、职场必备,总有一本是你需要的……

有群友提问:要提取最后一行数据用什么公式?
这个问题是什么意思呢,结婚示例来看一下吧。

如下图所示,ABC三列是每天会增加的数据源,想在右边把最后一行数据提取出来,并且随着数据源的增加,提取结果是能自动更新的,始终显示最后一行的内容。

问题看明白的话就来讨论解决办法。
针对这种问题,五大引用函数中有四个都是手到拈来。什么,你还不知道五大引用函数是哪些?

五大引用函数是:VLOOKUP、INDEX、OFFSET、INDIRECT和LOOKUP。

除了VLOOKUP,另外四个都能解决这个问题。

当然也有可能是我太菜了,不知道怎么用VLOOKUP去搞。

废话不说了,下面来看看这四个函数是怎么取最后一行数据的。

LOOKUP解决方案

LOOKUP似乎天生就是干这个的,要说取最后的数据,首推LOOKUP。

=LOOKUP(1,0/(A:A<>""),A:A)

把这个公式右拉就搞定了,太容易了对吧。

至于原理,不多说了,这就是一个套路。

LOOKUP函数是一个充满了套路的函数,有兴趣的留言,咱们改天来个LOOKUP函数系列。

就这个问题来说,用的是精确匹配的套路:

=LOOKUP(1,0/(查找范围=查找值),结果范围)

因为题目要求找最后一个数据,也就是找最后一个非空数据,所以(查找范围=查找值)这部分就写成了(A:A<>""),大家理解就行,不用过多纠结。

INDIRECT解决方案

要说INDIRECT这个函数,估计很多人其实是不太熟悉的。

INDIRECT的原理其实非常好理解,告诉他要找的数据在哪个单元格,他就给你匹配过来。

比如说INDIRECT("A1"),那他就给你返回A1单元格的数据,INDIRECT("A10"),那他就给你返回A10单元格的数据。

在本例中,关键是A后面的这个数字得会变,A列有几个数据这个数字就得是几。

这一点我想还是挺容易懂的。

那么这个数字怎么确定呢,这就的用到计数函数COUNTA了。

用COUNTA(A:A)就能得到A列有几个数据。

所以公式=INDIRECT("a"&COUNTA(A:A))就能得到A列的最后一个数据。

但是右拉以后,你会发现,结果都是A列的数据,并没有变成B和C列的内容。

原因就在于公式中的"a"没有变成"b"和"c"。

怎么解决呢,有两个方法,第一种是用INDIRECT的高级模式——RC引用模式。

所以推荐第二个方法,让"a"可以自动变成"b"和"c"。

要实现这样的效果,需要CHAR函数和COLUMN函数来帮忙了。

自己试一下=CHAR(COLUMN(A1)+64)右拉会得到什么。

因为这个不是本问题的重点,就不解释了,有兴趣的同学还是留言,如果想了解这个问题的人够多,就单独起一篇教程。

完整的公式是:=INDIRECT(CHAR(COLUMN(A1)+64)&COUNTA(A:A))

对比前两个方法,大家有个明显的感觉,INDIRECT函数解决起来好像比较费劲呢。

实际上如果不涉及到右拉的话,INDIRECT函数要比LOOKUP函数的方法容易理解,但是每列要修改公式,对于一向以偷懒为己任的我们来说,显然不会满意的,都追求的是一个公式搞定多列。

关于OFFSET和INDEX的解法,咱们下次接着聊,不过建议大家先把OFFSET函数的基本原理学习一下,不然怕是会晕哦。

【Excel函数教程】史上最弱的一篇offset函数教程,让你见识什么叫凌波微步!

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多