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