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