感
謝
關(guān)
注
導(dǎo)讀
這兩天有個朋友問我為什么有個表格的公式,每當(dāng)插入列的時候結(jié)果就會出錯,不是說公式里面的單元格引用在插入列的時候會自動調(diào)整變化嗎?為什么插入列還會對公式結(jié)果造成影響呢?
今天,村長就以COLUMN函數(shù)為例,跟大家分享插入列對公式結(jié)果造成的影響。
在日常的工作中,我們經(jīng)常會遇到一些嵌套了COLUMN函數(shù)的公式,例如下面這個公式
函數(shù)公式:
=VLOOKUP($A10,$A$1:$D$7,COLUMN(B1),0)
這里VLOOKUP函數(shù)的第3參數(shù)采用COLUMN(B1)是因為COLUMN(B1)返回的是B1所在列號B列的列號,也就是2,在公式右拉的時候COLUMN(B1)會依次變成COLUMN(C1)、COLUMN(D1),也就是依次返回C列和D列的列號,分別得到3和4,剛好是1月、2月、3月結(jié)果在$A$1:$D$7單元格區(qū)域中要返回的列數(shù)。
這樣子寫公式比較靈活,否則如果VLOOKUP函數(shù)的第3參數(shù)用固定數(shù)值2/3/4,那么公式將無法右拉,要每個單元格寫一個公式,非常的不方便。
然而,這樣子寫函數(shù)公式也有一個弊端,我們可以看一下下面這個動畫
我們發(fā)現(xiàn)當(dāng)我們在A列前面插入一列空列的時候,1月對應(yīng)的公式就由原來的
=VLOOKUP($A10,$A$1:$D$7,COLUMN(B1),0)變成了
=VLOOKUP($B10,$B$1:$E$7,COLUMN(C1),0)
查找的區(qū)域自動由$A$1:$D$7調(diào)整為$B$1:$E$7,往后移動了一列,VLOOKUP函數(shù)的第3參數(shù)也由COLUMN(B1)變成了COLUMN(C1),也就是由2變成了3,也就是說1月的結(jié)果將返回$B$1:$E$7單元格區(qū)域的第3列,然而我們都知道插入列后1月的結(jié)果依然是在$B$1:$E$7單元格區(qū)域的第2列,所以插入列后1月、2月、3月的結(jié)果都發(fā)生了錯位,導(dǎo)致結(jié)果全部錯誤。
所以,針對這些問題,村長在這里跟大家分享一下我自己的函數(shù)使用心得:
1、如果只是自己使用的表格,而且是臨時性的需要用函數(shù)公式引用數(shù)據(jù),那么可以使用COLUMN或者ROW對公式進行嵌套;
2、如果是作為一個需要經(jīng)常使用的固定模板,那么函數(shù)公式盡量不要用COLUMN或者ROW函數(shù)進行嵌套,原因就像我們前面演示的那樣,嵌套了COLUMN或者ROW函數(shù)的公式,只要行列發(fā)生變化,就有可能會導(dǎo)致結(jié)果錯誤;例如上面這個例子我們可以使用穩(wěn)定性更強的公式
=VLOOKUP($A10,$A$1:$D$7,MATCH(B9,$A$1:$D$1,0),0)
都說條條大道通羅馬,但是這些大道既有大路也有小路,小路可能也是捷徑,更快更簡單,但是對于不熟悉道路的人來說,走小路很容易發(fā)生危險。
所以,不要以為自己使用的是別人設(shè)定好了公式的模板就可以高枕無憂,如果你不懂函數(shù)公式,請不要隨意改變表結(jié)構(gòu),因為這樣極有可能會導(dǎo)致你的公式結(jié)果發(fā)生錯誤。
未知只會讓你如履薄冰,學(xué)習(xí)才能讓你無所畏懼
跨越未知,走向未來,加油!
致各位親