90本電子書:Excel、Word、PPT、職場必備,總有一本是你需要的……
有群友提問:要提取最后一行數(shù)據(jù)用什么公式?
這個(gè)問題是什么意思呢,結(jié)婚示例來看一下吧。
如下圖所示,ABC三列是每天會(huì)增加的數(shù)據(jù)源,想在右邊把最后一行數(shù)據(jù)提取出來,并且隨著數(shù)據(jù)源的增加,提取結(jié)果是能自動(dòng)更新的,始終顯示最后一行的內(nèi)容。
問題看明白的話就來討論解決辦法。
針對(duì)這種問題,五大引用函數(shù)中有四個(gè)都是手到拈來。什么,你還不知道五大引用函數(shù)是哪些?
五大引用函數(shù)是:VLOOKUP、INDEX、OFFSET、INDIRECT和LOOKUP。
除了VLOOKUP,另外四個(gè)都能解決這個(gè)問題。
當(dāng)然也有可能是我太菜了,不知道怎么用VLOOKUP去搞。
廢話不說了,下面來看看這四個(gè)函數(shù)是怎么取最后一行數(shù)據(jù)的。
LOOKUP解決方案
LOOKUP似乎天生就是干這個(gè)的,要說取最后的數(shù)據(jù),首推LOOKUP。
=LOOKUP(1,0/(A:A<>""),A:A)
把這個(gè)公式右拉就搞定了,太容易了對(duì)吧。
至于原理,不多說了,這就是一個(gè)套路。
LOOKUP函數(shù)是一個(gè)充滿了套路的函數(shù),有興趣的留言,咱們改天來個(gè)LOOKUP函數(shù)系列。
就這個(gè)問題來說,用的是精確匹配的套路:
=LOOKUP(1,0/(查找范圍=查找值),結(jié)果范圍)
因?yàn)轭}目要求找最后一個(gè)數(shù)據(jù),也就是找最后一個(gè)非空數(shù)據(jù),所以(查找范圍=查找值)這部分就寫成了(A:A<>""),大家理解就行,不用過多糾結(jié)。
INDIRECT解決方案
要說INDIRECT這個(gè)函數(shù),估計(jì)很多人其實(shí)是不太熟悉的。
INDIRECT的原理其實(shí)非常好理解,告訴他要找的數(shù)據(jù)在哪個(gè)單元格,他就給你匹配過來。
比如說INDIRECT("A1"),那他就給你返回A1單元格的數(shù)據(jù),INDIRECT("A10"),那他就給你返回A10單元格的數(shù)據(jù)。
在本例中,關(guān)鍵是A后面的這個(gè)數(shù)字得會(huì)變,A列有幾個(gè)數(shù)據(jù)這個(gè)數(shù)字就得是幾。
這一點(diǎn)我想還是挺容易懂的。
那么這個(gè)數(shù)字怎么確定呢,這就的用到計(jì)數(shù)函數(shù)COUNTA了。
用COUNTA(A:A)就能得到A列有幾個(gè)數(shù)據(jù)。
所以公式=INDIRECT("a"&COUNTA(A:A))就能得到A列的最后一個(gè)數(shù)據(jù)。
但是右拉以后,你會(huì)發(fā)現(xiàn),結(jié)果都是A列的數(shù)據(jù),并沒有變成B和C列的內(nèi)容。
原因就在于公式中的"a"沒有變成"b"和"c"。
怎么解決呢,有兩個(gè)方法,第一種是用INDIRECT的高級(jí)模式——RC引用模式。
所以推薦第二個(gè)方法,讓"a"可以自動(dòng)變成"b"和"c"。
要實(shí)現(xiàn)這樣的效果,需要CHAR函數(shù)和COLUMN函數(shù)來幫忙了。
自己試一下=CHAR(COLUMN(A1)+64)右拉會(huì)得到什么。
因?yàn)檫@個(gè)不是本問題的重點(diǎn),就不解釋了,有興趣的同學(xué)還是留言,如果想了解這個(gè)問題的人夠多,就單獨(dú)起一篇教程。
完整的公式是:=INDIRECT(CHAR(COLUMN(A1)+64)&COUNTA(A:A))
對(duì)比前兩個(gè)方法,大家有個(gè)明顯的感覺,INDIRECT函數(shù)解決起來好像比較費(fèi)勁呢。
實(shí)際上如果不涉及到右拉的話,INDIRECT函數(shù)要比LOOKUP函數(shù)的方法容易理解,但是每列要修改公式,對(duì)于一向以偷懶為己任的我們來說,顯然不會(huì)滿意的,都追求的是一個(gè)公式搞定多列。
關(guān)于OFFSET和INDEX的解法,咱們下次接著聊,不過建議大家先把OFFSET函數(shù)的基本原理學(xué)習(xí)一下,不然怕是會(huì)暈哦。
【Excel函數(shù)教程】史上最弱的一篇offset函數(shù)教程,讓你見識(shí)什么叫凌波微步!
聯(lián)系客服