INDEX函數(shù)
INDEX函數(shù)是返回表或區(qū)域中的值或?qū)χ档囊谩:瘮?shù)INDEX()有兩種形式:數(shù)組形式和引用形式。數(shù)組形式通常返回數(shù)值或數(shù)值數(shù)組;引用形式通常返回引用。
返回特定行和列交叉處單元格的引用。如果該引用是由非連續(xù)選定區(qū)域組成的,則可以選擇要用作查找范圍的選定區(qū)域。
函數(shù)語法
語法:INDEX(array,row_num,column_num)返回數(shù)組中指定的單元格或單元格數(shù)組的數(shù)值。INDEX(reference,row_num,column_num,area_num)返回引用中指定單元格或單元格區(qū)域的引用。
參數(shù):Array為單元格區(qū)域或數(shù)組常數(shù);Row_num為數(shù)組中某行的行序號,函數(shù)從該行返回數(shù)值。如果省略row_num,則必須有column_num;Column_num是數(shù)組中某列的列序號,函數(shù)從該列返回數(shù)值。如果省略column_num,則必須有row_num。Reference是對一個或多個單元格區(qū)域的引用,如果為引用輸入一個不連續(xù)的選定區(qū)域,必須用括號括起來。Area_num是選擇引用中的一個區(qū)域,并返回該區(qū)域中row_num和column_num的交叉區(qū)域。選中或輸入的第一個區(qū)域序號為1,第二個為2,以此類推。如果省略area_num,則INDEX函數(shù)使用區(qū)域1
實例:如果A1=68、A2=96、A3=90,則公式“=INDEX(A1:A3,1,1)”返回68。
INDEX函數(shù)返回一個值或者對某個值的引用。與其他函數(shù)如MATCH函數(shù)聯(lián)合使用,可以構(gòu)造強大的公式。
什么情況下使用INDEX函數(shù)?
INDEX函數(shù)可以返回一個值或者對某值的引用,因此可以使用該函數(shù)來:查找所選月份的銷量;獲取對指定行、列、區(qū)域的引用;基于給定數(shù)目創(chuàng)建動態(tài)區(qū)域;以字母順序排序文本列。
INDEX函數(shù)的語法
INDEX函數(shù)有兩種語法形式—數(shù)組和引用。使用數(shù)組形式,返回值;使用引用形式,返回引用。
數(shù)組形式的語法如下:
INDEX(array,row_num,column_num)
array是一個數(shù)組常量或者單元格區(qū)域
如果數(shù)組僅有1行或列,那么相應(yīng)的行/列號參數(shù)可選
如果數(shù)組大于1行或列,并且僅使用row_num或column_num,返回整行或整列組成的數(shù)組
如果忽略row_num,則column_num必需
如果忽略column_num,則row_num必需
如果row_num和column_num參數(shù)全都使用,則返回row_num和column_num交叉的單元格中的值
如果row_num或column_num是零,返回整列或整行的值組成的數(shù)組
引用形式的語法如下:
INDEX(reference,row_num,column_num,area_num)
reference可以引用一個或多個單元格區(qū)域-在括號中封閉非連續(xù)的區(qū)域
如果在引用中的每個區(qū)域僅有1行或1列,那么相應(yīng)的行/列數(shù)參數(shù)是可選的
area_num選擇引用中的區(qū)域,從其中返回行列交叉處的值
如果忽略area_num參數(shù),使用區(qū)域1
如果row_num或column_num是0,返回整列或整行的引用
結(jié)果是一個引用,可用于其他函數(shù)中
INDEX陷阱
如果row_num和column_num沒有指向數(shù)組或引用里的單元格,那么INDEX函數(shù)返回#REF!錯誤。
示例1:查找所選月份的銷量
輸入行號,INDEX函數(shù)返回引用中該行所在位置的銷量。這里的數(shù)字是4,因此返回四月份的銷量。
=INDEX($C$2:$C$8,F(xiàn)2)
要使該公式更靈活,可以基于從下拉列表中選擇的月份使用MATCH函數(shù)返回行號。
=INDEX($C$2:$C$8,MATCH($F$2,$D$2:$D$8,0))
示例2: 獲取對指定行、列、區(qū)域的引用
本例中,有一個名為MonthAmts的命名區(qū)域,由3個非連續(xù)的區(qū)域組成。MonthAmts區(qū)域有3塊-每個月一塊-并且在每塊有4行2列。下面是MonthAmts名稱的命名公式:
=’Ex02′!$B$3:$C$6,’Ex02′!$E$3:$F$6,’Ex02′!$H$3:$I$6
使用INDEX函數(shù),可以返回指定區(qū)域和月份的成本或收入。
=INDEX(MonthAmts,B10,C10,D10)
可以乘以INDEX函數(shù)的結(jié)果,例如單元格F10中的稅計算:
=0.05*INDEX(MonthAmts,B10,C10,D10)
或者,使用CELL函數(shù)返回引用,顯示結(jié)果所在的單元格的地址,例如單元格G10中的公式:
=CELL(“address”,INDEX(MonthAmts,B10,C10,D10))
示例3:基于給定數(shù)目創(chuàng)建動態(tài)區(qū)域
可以使用INDEX函數(shù)創(chuàng)建動態(tài)區(qū)域。在本例中,已經(jīng)使用下面的公式創(chuàng)建了名稱為MonthList的命名區(qū)域:
=’Ex03′!$C$1:INDEX(‘Ex03′!$C:$C,COUNTA(‘Ex03′!$C:$C))
如果在列C中添加另一個月,將自動顯示在單元格F2中使用MonthList作為數(shù)據(jù)源的數(shù)據(jù)有效性下拉列表中。
示例4:按字母順序排序文本列
在最后一個示例中,INDEX函數(shù)與幾個其他函數(shù)一起組合使用,返回以字母順序排列的月份列表。COUNTIF函數(shù)顯示在指定的月名之前有多少個月份名稱。SMALL函數(shù)返回列表中最小的項,MATCH函數(shù)返回該月份所在的行號。
公式是數(shù)組公式,因此輸入完后要按Ctrl+Shift+Enter組合鍵。
=INDEX($C$4:$C$9,MATCH(SMALL(
COUNTIF($C$4:$C$9,”《”&$C$4:$C$9),ROW(E4)-ROW(E$3)),
COUNTIF($C$4:$C$9,”《”&$C$4:$C$9),0))
評論
查看更多