編按:哈嘍,大家好!在上一期區間查詢的教程中,我們掌握了IF、LOOKUP、VLOOKUP三種最基礎的函數解法,相信小夥伴們再次面對區間查詢的問題時也能沉著應對啦。但僅僅三種基礎的函數解法怎麼夠,今天我們要說的是比VLOOKUP函數更厲害的三大經典嵌套組合。學會了這三種經典嵌套組合,相信小夥伴們也能在職場上縱橫一番了。
*********
【引言】函數是Excel重要的組成部分,400多個工作表函數(不包含宏表函數和VBA函數),每一個都有其存在的意義,只是我們沒有使用到而已。而將一個函數的返回值作為另外一個函數的參數參與運算的方式就是函數的嵌套,這樣編寫的公式就是「嵌套函數」。
我們繼續上次的「區間取值」,藉此學習一些比較經典的嵌套函數是如何解決此類問題的。(本篇為經典嵌套函數篇)
【數據源】
要求:根據B列的數值,在E列的範圍條件中找到對應範圍在H列的區間係數,並提取到C列計提係數中。
【解題方案】
方法四:INDEX+MATCH函數
C2單元格函數:
=INDEX($H$2:$H$6,MATCH(B2,$G$2:$G$6,1))
函數解析:
INDEX+MATCH函數的方式,應該也算是某些同學的解題思路之一。只要了解了函數的語法,這個方法並不難。
INDEX函數,在使用上有兩種方式:數組形式、引用形式。我們今天用到的是數組形式。
INDEX函數語法:INDEX(array, row_num, [column_num]),其解釋可以理解為,在一個區域中,找到指定行號和列號的交叉點,將其返回至單元格中。
因為我們是在H2:H6這一列區域中提取值,所以我們只用了row_num參數,忽略了column_num。(反之亦然)
那麼我們如何來判斷要返回第幾行的區間係數呢?那就需要MATCH函數來解決了。
MATCH函數語法:MATCH(lookup_value, lookup_array, [match_type]),其解釋可以理解為,返回在一個區域中第一次出現該數據的位置序號。
MATCH函數的第三參數和VLOOKUP的第四參數,有著異曲同工之妙,都可以用作模糊查詢和精確查詢,不過MATCH函數的模糊查詢有兩個值1(小於),-1(大於)。利用MATCH函數找到數據在條件區域G列中所處的位置序號,再用INDEX函數找到對應的區間係數就達到了我們的需求。
方法五:OFFSET+MATCH函數
C2單元格函數:
=OFFSET($G$1,MATCH(B2,$G$2:$G$6,1),1,1,1)
函數解析:
這個方法使用了EXCEL函數中的漂移函數——OFFSET函數。它可以根據我們給定的條件,從某一個單元格,移動到另一個單元格或者區域,並返回地址引用。
OFFSET函數的語法:OFFSET(reference, rows, cols, [height], [width]),其函數解釋可以理解為從某個基準單元格開始,先上(下)移動,再左(右)移動,這樣就得到了一個新的基準點,以新的基準單元格定出高度和寬度,形成的單元格或區域作為引用地址。(如果返回的是單獨的單元格,那麼就會直接返回該單元格的值;如果是區域,那麼它就可以參與其他函數的調用)
因為條件區域是G2:H6,那麼我們就把基準值設置成G1單元格,向下偏移量我們用MATCH函數來解決(用法參考【方法四】的內容),向右偏移一行,最後得出公式。
方法六:CHOOSE+MATCH函數
C2單元格函數:
=CHOOSE(MATCH(B2,$G$2:$G$6,1),$H$2,$H$3,$H$4,$H$5,$H$6)
函數解析:
這個方法是用CHOOSE函數來處理區間取值的問題。
CHOOSE函數語法:CHOOSE(index_num, value1, [value2], ...),其函數作用可以理解為找出value1, [value2], ...中的第index_num位次上的值,並返回單元格。函數最多可以有254個value,同時index_num的值也必須是1~254之間的一個數字。
CHOOSE函數也是一個很強大的函數,它不僅可以返回一個單元格的值,也可以返回一個區域的引用,作為其他函數運算的參數。
本例中我們依然是使用了MATCH函數來找到對應的區間,然後返回了H2到H6單元格的內容。
【編後語】作為區間取值的《中篇》內容,主要講了三個比較常用的嵌套函數,之所以稱之為「經典嵌套函數」,是因為這些嵌套函數,可以被應用到很多的方面,不僅僅是區間問題。
當然,我們也可以自己來對函數進行多種組合,但是函數的嵌套使用,一定是基於對獨立函數的充分理解之後,才可以使用的,比如我們今天的案例,MATCH函數的返回值是數值型,那麼就一定要把它放到一個數值型的參數位置上,否則函數就會報錯的。
****部落窩教育-excel嵌套函數查找應用****
原創:E圖表述/部落窩教育(未經同意,請勿轉載)