函數(shù)是公式的“細胞”,構造強大而優(yōu)雅的公式少不了函數(shù)的配合。
Excel提供了300多個內置函數(shù),有些函數(shù)很活躍,他們看似平常,但在公式中能夠經常看到他們的“身影”。正是這些函數(shù),在公式中組合后卻能發(fā)揮出巨大的威力。
下面主要介紹一些在公式中經常會用到的函數(shù),探討一些細節(jié)和技巧。在后面的系列文章中,我會對很多有特點的函數(shù)進行專門的詳解。
區(qū)分大小寫的函數(shù) 下表列出了區(qū)分大小寫的Excel函數(shù)或運算的對比: 上表中有關函數(shù)的詳細講解分別參見完美Excel微信公眾號(公眾號名:excelperfect)推送的文章《Excel函數(shù)學習15:EXACT函數(shù)》、《Excel函數(shù)學習11:SUBSTITUTE函數(shù)》、《Excel函數(shù)學習9:FIND函數(shù)》、《Excel函數(shù)學習8:SEARCH函數(shù)》。
獲取數(shù)據(jù)位置或者個數(shù)值的函數(shù) 下表列出了一些能夠獲取數(shù)據(jù)位置或者個數(shù)值的Excel函數(shù)及相關說明: 上表中,ROW函數(shù)返回單元格所在行的行號,如果參數(shù)為單元格區(qū)域,則返回左上角單元格所在行的行號。COLUMN函數(shù)返回單元格所在列的列號,如果參數(shù)為單元格區(qū)域,則返回左上角單元格所在列的列號。例如: =ROW() 返回當前單元格所在行的行號。 =ROW(B5) 返回數(shù)值5,表示第5行。 =ROW(E9:H18) 返回數(shù)值9,即單元格區(qū)域E9:H18左上角單元格E9所在行的行號。 COLUMN函數(shù)類似。當傳遞單元格區(qū)域作為ROW函數(shù)和COLUMN函數(shù)的參數(shù)時,可以返回數(shù)組值。在后面我們會看到,利用這個特點,可以編寫出靈活強大的公式。
要想知道一個區(qū)域有多少行多少列,則應使用ROWS函數(shù)和COLUMNS函數(shù)。例如: =ROWS(C3:E6) 返回數(shù)值4,表示單元格區(qū)域C3:E6有4行。 =COLUMNS(C3:E6) 返回數(shù)值3,表示單元格區(qū)域C3:E6有3列。
MATCH函數(shù)的語法為: MATCH(要查找的值,查找區(qū)域或數(shù)組[,匹配類型]) 其中,匹配類型為可選參數(shù),如果指定其值為0,那么MATCH函數(shù)將在查找區(qū)域或數(shù)組中查找和要查找的值完全相等的第一個值。如果沒有指定該參數(shù)值,或者指定其值為1,那么MATCH函數(shù)將在查找區(qū)域或數(shù)組中查找小于或等于要查找的值的最大值,但是查找區(qū)域或數(shù)組需要按升序排列。如果指定其值為-1,那么MATCH函數(shù)將在查找區(qū)域或數(shù)組中查找大于或等于要查找的值的最小值,但是查找區(qū)域或數(shù)組需要按降序排列。 如果查找區(qū)域或數(shù)組需要按升序排列,那么各類數(shù)據(jù)的排列順序是:數(shù)字、文本字符、FALSE或TRUE,例如5,”excelperfect”,TRUE。降序排列與之相反。 如果指定匹配類型的值為0,并且要查找的值是文本,那么可以在要查找的值中使用通配符。問號(?)可以匹配任何一個字符,星號(*)可以匹配任意多個字符。
上表中有關函數(shù)的詳細講解分別參見完美Excel微信公眾號(公眾號名:excelperfect)推送的文章《Excel函數(shù)學習1:MATCH函數(shù)》、《Excel函數(shù)學習22:COLUMNS函數(shù)》、《Excel函數(shù)學習13:ADDRESS函數(shù)》。
獲取數(shù)據(jù)值的函數(shù) 下表列出了一些可以獲取數(shù)據(jù)值的Excel函數(shù)及相關的說明: 上表中,VLOOKUP函數(shù)按照最后一個參數(shù)指定的模式,在數(shù)據(jù)區(qū)域的第1列向下查找值,從指定列中找到相應的數(shù)據(jù)。下圖所示的工作表列舉了VLOOKUP函數(shù)使用的不同情形: 如果指定VLOOKUP函數(shù)的最后一個參數(shù)為TRUE(默認值),那么查找區(qū)域的第1列應該按照升序排列。此時,該函數(shù)會查找并返回最后一個匹配項。如果要查找并返回第一個匹配項,那么將該函數(shù)的最后一個參數(shù)設置為FALSE。例如,示例工作表中查找數(shù)據(jù)10時的情形。 如果在查找的數(shù)據(jù)區(qū)域中沒有想要查找的值,如示例中的數(shù)據(jù)15、25、35,那么VLOOKUP函數(shù)會根據(jù)指定的最后一個參數(shù)來查找值。當指定最后一個參數(shù)為TRUE時,獲取小于且與所查找值最接近的值,而當指定最后一個參數(shù)為FALSE時,會返回#N/A錯誤。 在指定VLOOKUP函數(shù)的最后一個參數(shù)為FALSE時,我們可以不需要查找區(qū)域按升序排列,并且在有多行值與查找的值相同時,可以獲得第1行所對應的值,但在沒有找到值時會返回錯誤。 HLOOKUP函數(shù)的用法與VLOOKUP函數(shù)相同,只是在數(shù)據(jù)區(qū)域的第1行向右查找。
VLOOKUP函數(shù)和HLOOKUP函數(shù)只能使用最左側列或者最頂部的行進行查找,獲取左側列或者下方行中的值,這是它們的一個主要缺點。INDEX函數(shù)和MATCH函數(shù)有效彌補了其不足。
INDEX函數(shù)經常與MATCH函數(shù)配合使用,由MATCH函數(shù)找到相應的行列號,作為INDEX函數(shù)的參數(shù),獲取相應的值。INDEX函數(shù)不僅可以使用數(shù)組作為參數(shù),而且還可以返回數(shù)組值,在后面我們將會看到相關應用示例。
INDIRECT函數(shù)可以使用文本來構造單元格引用。例如: =INDIRECT('B' &2) 或者 =INDIRECT(“B2”) 等價于 =B2 那為什么不直接就輸入=B2呢?在某些情形下,可能參數(shù)就是文本,而一些函數(shù)不會接受文本作為參數(shù),例如ROW函數(shù)。當使用 =ROW(”1:2”) 時,Excel不會接受。如果使用: =ROW(INDIRECT('1:2')) 可以滿足要求。使用數(shù)組輸入,返回{1;2}。這正可以彌補ROW函數(shù)的不足。 又如,ROW函數(shù)不接受其它函數(shù)作為參數(shù),如果輸入: ROW(1:LEN(A1)) Excel會返回錯誤。但可以這樣輸入: ROW(INDIRECT(“1:” &LEN(A1)) 如果單元格A1中字符串的長度為3,那么上述公式變?yōu)椋?/span> ROW(INDIRECT(“1:3”)) 進一步計算為: {1;2;3} 注:如果使用R1C1樣式的引用,那么需要指定參數(shù)FALSE,例如 =INDIRECT('R2C2',FALSE) 表示引用單元格B2。
OFFSET函數(shù)都可以引用其他的單元格,返回相關的單元格或單元格區(qū)域。不像VLOOKUP函數(shù)那樣要順序查找,因此涉及大量單元格時更快速。
|
|
來自: zhangshoupen > 《我的微表》